/ 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
Teste karakterer i input
Fra : Aagaard


Dato : 16-08-05 06:49

Jeg har en form:
<form action="modtag.php" method=POST>
<input name="tiltest" maxlength="4"">Postnr.<br>
<input type=submit value="Send postnr" name=f_submit>

Jeg vil gerne kunne teste:
a. om det kun er tal der er indtastet.
b.om der er indtastet 4 cifre.

Jeg har ledt i php manualen, men intet fundet. Nogen som kan hjælpe?

--
Aagaard



 
 
Christian Hansen (16-08-2005)
Kommentar
Fra : Christian Hansen


Dato : 16-08-05 07:52

Aagaard wrote:
> Jeg har en form:
> <form action="modtag.php" method=POST>
> <input name="tiltest" maxlength="4"">Postnr.<br>
> <input type=submit value="Send postnr" name=f_submit>
>
> Jeg vil gerne kunne teste:
> a. om det kun er tal der er indtastet.
> b.om der er indtastet 4 cifre.
>
> Jeg har ledt i php manualen, men intet fundet. Nogen som kan hjælpe?
>
> --
> Aagaard
>
>

Du kan eksempelvis teste med

if(preg_match("/^[0-9]{4}$/",$_POST["tiltest"]))

eller

if(is_numeric($_POST["tiltest"]) && strlen($_POST["tiltest"]) == 4)

mvh christian

Peter Farsinsen (16-08-2005)
Kommentar
Fra : Peter Farsinsen


Dato : 16-08-05 11:35

Christian Hansen wrote:

> if(is_numeric($_POST["tiltest"]) && strlen($_POST["tiltest"]) == 4)

var_dump(is_numeric('1.00') && (strlen('1.00') == 4)); returnerer true
og er altså ikke helt skudtæt, hvis jeg har forstået spørgsmålet
rigtigt. preg_match må være vejen frem.

- Peter


Troels Hansen (16-08-2005)
Kommentar
Fra : Troels Hansen


Dato : 16-08-05 11:59

Peter Farsinsen wrote:
> Christian Hansen wrote:
>
>
>>if(is_numeric($_POST["tiltest"]) && strlen($_POST["tiltest"]) == 4)
>
>
> var_dump(is_numeric('1.00') && (strlen('1.00') == 4)); returnerer true
> og er altså ikke helt skudtæt, hvis jeg har forstået spørgsmålet
> rigtigt. preg_match må være vejen frem.
>
> - Peter

$var = 1.00
var_dump(is_numeric($var) && (strlen((int)$var) == 4));
hvis man VIL udenom preg_match

Aagaard (16-08-2005)
Kommentar
Fra : Aagaard


Dato : 16-08-05 17:41

> $var = 1.00
> var_dump(is_numeric($var) && (strlen((int)$var) == 4));
> hvis man VIL udenom preg_match

Har brugt løsningen med preg_match, som virker fint.
Jeg forstår ikke hvorfor man skulle gå uden om preg_match?

--
Aagaard



Troels Hansen (16-08-2005)
Kommentar
Fra : Troels Hansen


Dato : 16-08-05 19:33

Aagaard wrote:
> Har brugt løsningen med preg_match, som virker fint.
> Jeg forstår ikke hvorfor man skulle gå uden om preg_match?
>

Det er der heller ingen grund til at man skulle. preg_match er vejen
frem, men man KAN komme uden om HVIS man vil.

Aagaard (16-08-2005)
Kommentar
Fra : Aagaard


Dato : 16-08-05 19:46

> Det er der heller ingen grund til at man skulle. preg_match er vejen frem,
> men man KAN komme uden om HVIS man vil.

Ja, der er mange veje der fører til Rom ...

Tak for dit svar.

--
Aagaard



Jacob Atzen (16-08-2005)
Kommentar
Fra : Jacob Atzen


Dato : 16-08-05 20:41

On 2005-08-16, Troels Hansen <idle@invalid.email> wrote:
> Aagaard wrote:
> > Har brugt løsningen med preg_match, som virker fint.
>> Jeg forstår ikke hvorfor man skulle gå uden om preg_match?
>>
>
> Det er der heller ingen grund til at man skulle. preg_match er vejen
> frem, men man KAN komme uden om HVIS man vil.

For en god ordens skyld: preg er formentlig forholdsvis tung i forhold
til alternativet, hvilken kan være en grund, hvis man har et meget
velbesøgt site. Dermed ikke sagt, at man hverken skal eller bør optimere
før man har konstateret behovet og fundet flaskehalsen

--
Med venlig hilsen
- Jacob Atzen

Aagaard (16-08-2005)
Kommentar
Fra : Aagaard


Dato : 16-08-05 17:39

> if(preg_match("/^[0-9]{4}$/",$_POST["tiltest"]))
>
Virker fint.
Tak for hjælpen.

--
Aagaard



Geert Lund (01-09-2005)
Kommentar
Fra : Geert Lund


Dato : 01-09-05 11:53

Christian Hansen wrote:

> if(is_numeric($_POST["tiltest"]) && strlen($_POST["tiltest"]) == 4)

Hmm... det er så her jeg i stedet for is_numeric lige vil henvise til
ctype_<funktionerne>[1] der som oftest vil give et bedre resultat og
leve op til de ønskede krav :)

(fx vil jeg her bruge ctype_digit[2] i stedet for is_numeric)

Og sorry den lange svartid - men så lige denne tråd og måtte lige
kommentere det :)


[1] http://dk2.php.net/manual/da/ref.ctype.php
[2] http://dk2.php.net/ctype_digit

--
Med venlig hilsen
Geert Lund

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

Månedens bedste
Årets bedste
Sidste års bedste