Enkel cijfers / letters

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Zie Foto

Zie Foto

07/10/2010 20:27:58
Quote Anchor link
Hallo,

Ik zit met een probleempje.
Als een veld leeg is geeft hij een fout (dit werkt correct)
Alleen voor sommige velden zijn enkel cijfers of alleen letters mogelijk.
Hieronder mijn code. Wat doe ik fout?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?

if(empty($_POST['naam']) ){echo "U heeft geen naam ingevult.";}

else if(ereg('^[a-zA-Z]$', $_POST['naam'])){echo "Enkel letters mogelijk bij u naam.";}

else if(empty($_POST['aantalurenn']) ){echo "Heeft u niet gewerkt?";}

else if(ereg('^[0-9]$', $_POST['aantaluren'])){echo "Enkel cijfers mogelijk bij het aantal uren.";}

...


?>
 
PHP hulp

PHP hulp

29/03/2024 11:56:59
 
Th van

Th van

07/10/2010 20:29:25
Quote Anchor link
Ga eerst eens die spatie tussen die elseif halen.
Dat hoort echt niet;)
 

07/10/2010 20:30:01
Quote Anchor link
Theodoor van Donge op 07/10/2010 20:29:25:
Ga eerst eens die spatie tussen die elseif halen.
Dat hoort echt niet;)

Ahum. Dat is dus niet het probleem. En dat maakt dus totaal niks uit. Zie php.net: elseif en else if. Eerst effe checken voordat je wat zegt.


Gebruik geen ereg, maar preg_*


En ik heb geen idee wat je probleem is.
Zou het wel anders aanpakken... Maar goed.
Gewijzigd op 07/10/2010 20:36:29 door
 
Zie Foto

Zie Foto

07/10/2010 20:47:39
Quote Anchor link
De functie: is_numeric heb ik ook al willen proberen, maar ook zonder resultaat.
Zelf heb ik geen grote kennis van PHP, maar probeer het wel te leren.
 
Niek s

niek s

07/10/2010 20:53:25
Quote Anchor link
Als je commentaar geeft over een spatie tussen "else if", snap je echt niet hoe de PHP syntax in elkaar steekt. Hoe al die gedachtes daarachter zijn, en waarom dat dat gewoon werkt...
 
Th van

Th van

07/10/2010 20:55:35
Quote Anchor link
Niek s op 07/10/2010 20:53:25:
Als je commentaar geeft over een spatie tussen "else if", snap je echt niet hoe de PHP syntax in elkaar steekt. Hoe al die gedachtes daarachter zijn, en waarom dat dat gewoon werkt...


Ik snap dat inderdaad niet, en ik ben wel benieuwd waarom dat werkt. (Was het namelijk nog nooit tegen gekomen, dat natuurlijk niet uitsluit dat het wel kan.)
 
Zie Foto

Zie Foto

07/10/2010 21:42:23
Quote Anchor link
Dus ik heb het even verandert.

Nu weet ik ook waar mijn fout zit.
Mijn achternaam is in 2 woorden dus natuurlijk geeft hij altijd een fout.
Hoe kan ik dat veranderen?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?

if(empty($_POST['naam']) ){echo "U heeft geen naam ingevult.";}

else if (preg_match("~[^a-z]~", $_POST['naam'])){echo "Enkel letters mogelijk bij u naam.";}

else if(empty($_POST['aantalurenn']) ){echo "Heeft u niet gewerkt?";}

else if (preg_match("~[^0-9]~", $_POST['aantalduiken'])){echo "Enkel cijfers mogelijk bij u aantal duiken.";}

...


?>
 
Pim -

Pim -

07/10/2010 21:54:29
Quote Anchor link
ingevult
Zo gaat het natuurlijk nooit goed

Zo doe je dat met de achternaam:
~[^A-z\s]~
Let wel op dat namen uit andere tekens kunnen bestaan. Hergé, bijvoorbeeld
 

07/10/2010 21:56:52
Quote Anchor link
Ja, das altijd leuk
Want je hebt ook bijvoorbeeld Hervé of Jean-Paul of garçon... of dit: ??

Zie zelfs phphulp kan het niet aan.
Gewijzigd op 07/10/2010 21:57:23 door
 
Wouter J

Wouter J

07/10/2010 21:57:01
Quote Anchor link
Volgens mij moet preg_match beginnen met ^ en eindigen met $. Dus:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
  preg_match('/^([^A-Za-z]+)$/');
?>
 
Pim -

Pim -

07/10/2010 21:57:59
Quote Anchor link
Oftewel, leestekens blacklisten is makkelijker. Dan gewoon prepared statements/escapen en htmlentities erover en dan gaat het goed.
 

07/10/2010 21:59:13
Quote Anchor link
Wouter de Jong op 07/10/2010 21:57:01:
Volgens mij moet preg_match beginnen met ^ en eindigen met $. Dus:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
  preg_match('/^([^A-Za-z]+)$/');
?>


Nee, niet per se. Hier is dat wel oké, want dan heb je dat de string echt alleen uit die tekens mag bestaan. Anders kan je filteren o.i.d. en het hoeft niet in alle gevallen zo te zijn.
Maar de regex die jij voorstelt getuigt niet van enig inzicht in reguliere expressies.
 
Zie Foto

Zie Foto

07/10/2010 22:09:01
Quote Anchor link
Okej, bedankt voor jullie hulp.
Genoeg gePHPt vandaag =)

Slaapwel
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.