Forum » Server-Side scripting » Foutje met preg_match
Crime-ware dot nl
Berichten: 774
avatar
Offline Stuur privebericht
wat doe ik fout in dit stukje php.
als ik [/{(!@#$%^&*)}\] gebruik staat het script dat gewoon toe.


$gebruikersnaam is gewoon gevuld met de $_POST['gebruikersnaam'];

Code | Selecteer Alles
minimaliseren
1
2
3
4
5
6
if(!preg_match("/[^A-Za-z0-9.]/"$gebruikersnaam)) {
echo 
"U mag alleen A-Z a-z 0-9 gebruiken. Geen [!@#$%^&*()_/].";
$toestaan "0";
}else{
$toestaan "1";
}



Alvast bedankt.

02-04-2011 12:33
Dit topic is 163 keer bekeken door 32 verschillende leden
Reacties op: "Foutje met preg_match"
1
Vreemd
Berichten: 1246
avatar
Offline Stuur privébericht
'/[^xyz]/' matched elk teken dat geen x, y of z is.
var_dump(preg_match('/[^xyz]/', 'abcdefghijklmnopqrstuvwxyz') zal dus 23 weergeven.
als je de ^ direct na de / gebruikt zal het het begin van de string aangeven.
var_dump(preg_match('/^[^xyz]/', 'abcdefghijklmnopqrstuvwxyz') zal dus 1 weergeven, aangezien het a zich op het begin van de string bevind en geen x, y of z is.
var_dump(preg_match('/^[xyz]/', 'abcdefghijklmnopqrstuvwxyz') zal dus 0 weergeven, omdat a geen x, y of z is.

Ik zou zo nog een tijdje door kunnen gaan, maar er zijn al genoeg mensen geweest die teksten geschreven hebben waarin reguliere expressies worden uitgelegd.

preg_match('/^[[:^alnum:].]++$/D', $gebruikersnaam) is wat jij wilt, nu is je huiswerk om uit te zoeken wat het allemaal betekend.
http://nl.php.net/manual/en/reference.pcre.pattern.syntax.php
02-04-2011 14:39
Crime-ware dot nl
Berichten: 774
avatar
Offline Stuur privébericht
Quote: Darsstar

'/[^xyz]/' matched elk teken dat geen x, y of z is.
var_dump(preg_match('/[^xyz]/', 'abcdefghijklmnopqrstuvwxyz') zal dus 23 weergeven.
als je de ^ direct na de / gebruikt zal het het begin van de string aangeven.
var_dump(preg_match('/^[^xyz]/', 'abcdefghijklmnopqrstuvwxyz') zal dus 1 weergeven, aangezien het a zich op het begin van de string bevind en geen x, y of z is.
var_dump(preg_match('/^[xyz]/', 'abcdefghijklmnopqrstuvwxyz') zal dus 0 weergeven, omdat a geen x, y of z is.

Ik zou zo nog een tijdje door kunnen gaan, maar er zijn al genoeg mensen geweest die teksten geschreven hebben waarin reguliere expressies worden uitgelegd.

preg_match('/^[[:^alnum:].]++$/D', $gebruikersnaam) is wat jij wilt, nu is je huiswerk om uit te zoeken wat het allemaal betekend.
http://nl.php.net/manual/en/reference.pcre.pattern.syntax.php




Bedankt voor je hulp ik ga het door lezen op de warmste dag van april
02-04-2011 14:44
Reageer op: "Foutje met preg_match"
1
Je kan niet reageren omdat je niet bent ingelogd. Inloggen of Aanmelden