/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
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

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408929
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste