|
| Bestemt brugerinput Fra : Tina Holt |
Dato : 24-01-05 11:24 |
|
Jeg har nogle felter hvor brugeren selv skal kunne skrive noget
i, men i et af felterne må brugeren KUN skrive et tal, og tallet
skal enten være 1, 2, 8 eller 9, alt andet er ikke tilladt.
Hvordan sikrer jeg det?
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Jacob Atzen (24-01-2005)
| Kommentar Fra : Jacob Atzen |
Dato : 24-01-05 11:45 |
|
On 2005-01-24, Tina Holt <kejej@rocketmail.com> wrote:
> Jeg har nogle felter hvor brugeren selv skal kunne skrive noget i, men
> i et af felterne må brugeren KUN skrive et tal, og tallet skal enten
> være 1, 2, 8 eller 9, alt andet er ikke tilladt. Hvordan sikrer jeg
> det?
Det kommer an på hvad du vil. Hvis du vil sikre dig, at det rent
"fysisk" er umuligt at skrive andet end tal i et formular felt, så skal
du have fat i en af clientside grupperne, f.eks. JavaScript gruppen.
Med PHP kan du kun sikre dig, at de data du behandler har det format du
ønsker (kun tal). Du kan f.eks. checke at en variabel indeholder et
tal med is_numeric() funktionen.
--
Med venlig hilsen
- Jacob Atzen
| |
Ulrik Nielsen (24-01-2005)
| Kommentar Fra : Ulrik Nielsen |
Dato : 24-01-05 11:47 |
|
Tina Holt wrote:
> Jeg har nogle felter hvor brugeren selv skal kunne skrive noget
> i, men i et af felterne må brugeren KUN skrive et tal, og tallet
> skal enten være 1, 2, 8 eller 9, alt andet er ikke tilladt.
> Hvordan sikrer jeg det?
if (!ereg("^(1|2|8|9)$", $inputfelt)) {
die("skrid pomfrit");
}
--
ulrik nielsen |
-----------------+---------------------------------------------------
quote or the day | Too much radiation coming from the soil.
from bofh | http://www.cs.wisc.edu/~ballard/bofh/
| |
Johan Holst Nielsen (24-01-2005)
| Kommentar Fra : Johan Holst Nielsen |
Dato : 24-01-05 15:08 |
|
Ulrik Nielsen wrote:
> Tina Holt wrote:
>
>> Jeg har nogle felter hvor brugeren selv skal kunne skrive noget
>> i, men i et af felterne må brugeren KUN skrive et tal, og tallet
>> skal enten være 1, 2, 8 eller 9, alt andet er ikke tilladt.
>> Hvordan sikrer jeg det?
>
> if (!ereg("^(1|2|8|9)$", $inputfelt)) {
> die("skrid pomfrit");
> }
Umiddeltbart vil jeg mene reg exp er lidt overkill i denne situation...
if(strpos('1289',$input)===false) {
die("forkert input");
}
mvh
Johan
| |
Johan Holst Nielsen (24-01-2005)
| Kommentar Fra : Johan Holst Nielsen |
Dato : 24-01-05 15:18 |
|
Johan Holst Nielsen wrote:
> Ulrik Nielsen wrote:
>
>> Tina Holt wrote:
>>
>>> Jeg har nogle felter hvor brugeren selv skal kunne skrive noget
>>> i, men i et af felterne må brugeren KUN skrive et tal, og tallet
>>> skal enten være 1, 2, 8 eller 9, alt andet er ikke tilladt.
>>> Hvordan sikrer jeg det?
>>
>>
>> if (!ereg("^(1|2|8|9)$", $inputfelt)) {
>> die("skrid pomfrit");
>> }
>
>
> Umiddeltbart vil jeg mene reg exp er lidt overkill i denne situation...
>
> if(strpos('1289',$input)===false) {
> die("forkert input");
> }
Og så tænker jeg mig ikke om :(
if(strpos('1289',trim($input))===false || strlen(trim($input)) > 1) {
die("forkert input");
}
Den skal selvfølgelig også tjekke på længden af strengen
mvh
johan
| |
Ulrik Nielsen (24-01-2005)
| Kommentar Fra : Ulrik Nielsen |
Dato : 24-01-05 15:59 |
|
Johan Holst Nielsen wrote:
>>>
>>> if (!ereg("^(1|2|8|9)$", $inputfelt)) {
>>> die("skrid pomfrit");
>>> }
>>
>>
>>
>> Umiddeltbart vil jeg mene reg exp er lidt overkill i denne situation...
>
> Og så tænker jeg mig ikke om :(
>
> if(strpos('1289',trim($input))===false || strlen(trim($input)) > 1) {
> die("forkert input");
> }
ikke fordi jeg har noget imod din måde at gøre det på, men her bruger du
4 funktionskald, som jeg klarer med 1, så hvad er overkill ;)
jeg har ikke testet det, men jeg tror nu at det hastighedsmessigt er
lige fedt...
--
ulrik nielsen |
-----------------+---------------------------------------------------
quote or the day | Too much radiation coming from the soil.
from bofh | http://www.cs.wisc.edu/~ballard/bofh/
| |
Johan Holst Nielsen (24-01-2005)
| Kommentar Fra : Johan Holst Nielsen |
Dato : 24-01-05 16:40 |
|
Ulrik Nielsen wrote:
> Johan Holst Nielsen wrote:
>
>>>>
>>>> if (!ereg("^(1|2|8|9)$", $inputfelt)) {
>>>> die("skrid pomfrit");
>>>> }
>>>
>>>
>>>
>>>
>>> Umiddeltbart vil jeg mene reg exp er lidt overkill i denne situation...
>>
>>
>> Og så tænker jeg mig ikke om :(
>>
>> if(strpos('1289',trim($input))===false || strlen(trim($input)) > 1) {
>> die("forkert input");
>> }
>
>
> ikke fordi jeg har noget imod din måde at gøre det på, men her bruger du
> 4 funktionskald, som jeg klarer med 1, så hvad er overkill ;)
>
> jeg har ikke testet det, men jeg tror nu at det hastighedsmessigt er
> lige fedt...
Reelt behøver jeg kun 2... som begge ikke er regulære...
Min vil matche på " 1 " det vil din ikke - så mine 2 trim kan jeg sagens
undvære - det kan du ikke med din nuværende metode :) Trim kunne jeg
også have lagt før if sætningen - og derved komme ned på 3 - mod 2 ved
din (med samme funktionalitet).
Gruden til jeg siger det - er at det generelt ikke er god praksis at
lave bruge regulære udtryk når det er simpel matching... I dette
tilfælde er vi på grænsen mellem om det er okay eller ej - det er jeg så
enig i :)
mvh
Johan
| |
Morten Qvistgaard (24-01-2005)
| Kommentar Fra : Morten Qvistgaard |
Dato : 24-01-05 13:15 |
|
"Tina Holt" <kejej@rocketmail.com> skrev i en meddelelse
news:41f4ccd0$0$48323$14726298@news.sunsite.dk...
> Jeg har nogle felter hvor brugeren selv skal kunne skrive noget
> i, men i et af felterne må brugeren KUN skrive et tal, og tallet
> skal enten være 1, 2, 8 eller 9, alt andet er ikke tilladt.
> Hvordan sikrer jeg det?
Hvad med en ganske almindelig select boks, hvor brugeren vælger et af dine
tal?
--
Morten Qvistgaard
| |
Claus Agerskov (26-01-2005)
| Kommentar Fra : Claus Agerskov |
Dato : 26-01-05 07:58 |
|
Tina Holt wrote:
> Jeg har nogle felter hvor brugeren selv skal kunne skrive noget
> i, men i et af felterne må brugeren KUN skrive et tal, og tallet
> skal enten være 1, 2, 8 eller 9, alt andet er ikke tilladt.
> Hvordan sikrer jeg det?
Jeg ville bruge en liste at vælge fra istedet:
<select name="tal">
<option>1</option>
<option>2</option>
<option>8</option>
<option>9</option>
</select>
Hvis du vil bruge en tekstboks til inddata, så kan du begrænse længden af
inddata til et tegn ved at angive maxlength="1":
<input type="text" name="tal" size="1" maxlength="1" />
Variablen tal skal så valideres på serversiden med PHP, hvilket andre i
tråden har givet eksempler på, hvorledes dette gøres.
De herligste hilsner
--
| Claus Agerskov | Jeg vil leve i en verden, hvor al kommunikation
|--------------------| er baseret på frie og åbne standarder, så enhver
| ca@chbs.dk | har friheden til at vælge.
| http://www.chbs.dk | Claus Sørensen, 2001
| |
|
|