Foutje met preg_match

  • 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'];


    PHP
    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. (L)
    8-|

  • Guest, wil je besparen op je domeinnamen? (ad)
  • '/[^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/re…e.pcre.pattern.syntax.php


  • 8-|


    Bedankt voor je hulp ik ga het door lezen op de warmste dag van april :cheer:

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!