[PHP]Fout met controleren naam dmv regex

Pagina: 1
Acties:

  • Quibus
  • Registratie: November 2000
  • Laatst online: 01-09 19:46
Ik heb een scriptje dat de input van users controleert, en daarna verstuurd per mail. Ik controleer de input dmv REGEXen. Ik heb gister een topic geopend over een probleem met de regex voor de voor- en achternaam. Ik weet dat de regex klopt. Deze heb ik namelijk gecheckt in een programma om te kijken of de regex werkt.

Stukje uit mijn php code is:
PHP:
1
<?$naam = trim($_POST['naam']);        echo "$naam<br>";        $naam_check = ereg("^([A-Za-z'ÀÁÂÃÄÅÇÈÉÊËÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäèéçêëìíîïòóôõöùúûü-]{2,}\s)+[A-Za-z'ÀÁÂÃÄÅÇÈÉÊËÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäçèéêëìíîïòóôõöùúûü-]+$", $naam);        if ($naam_check) { echo "<br> JA!!"; }         else {                    $form_error['naam'] = "Uw naam is niet volledig ingevuld, u moet uw voor- en achternaam invullen.";        echo $form_error['naam'];         exit;        } ?>

Het probleem is nu dat het script altijd zegt: "Uw naam is niet volledig ingevuld, u moet uw voor- en achternaam invullen." Dit betekent dus dat de regex steeds als waarde FALSE terug geeft. Ik weet echt niet wat ik fout doe en heb al een hele tijd gekeken naar de code, en wat geprobeerd met regexen. Kan iemand mij helpen?

  • creative8500
  • Registratie: September 2001
  • Laatst online: 03-01 16:54

creative8500

freedom.

Werkt echo $naam wel?

Probeer eens if($naam_check == TRUE).

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Bekijk de syntax highlighted versie es, daar zitten wat gekke dingen in.

Ik raad je aan je regexp tussen '' quotes te zetten ipv "".
Vergeet niet die ' dan te escapen ;)

  • Quibus
  • Registratie: November 2000
  • Laatst online: 01-09 19:46
De echo $naam werkt perfect.
ACM ik zal jou tip eens proberen

Ik heb nu ook nog $naam een waarde gegeven.
Zo van: $naam = "Hier Naam";
Deze waarde moet een TRUE geven bij $naam_check (Tis men eigen naam :P), maar nog steeds dezelfde fout.

  • Quibus
  • Registratie: November 2000
  • Laatst online: 01-09 19:46
ACM jou methode werkt helaas ook niet. Ik heb de regex tussen ' ' gezet. En de 2 ' in de regex zelf geescaped.
Wat kan het probleem nog meer zijn.

  • Quibus
  • Registratie: November 2000
  • Laatst online: 01-09 19:46
Niemand een idee?? het werkt nog steeds niet:(

  • Xlnt
  • Registratie: Oktober 2000
  • Laatst online: 18-08 08:11
Vervang de \s eens door een spatie, en het werkt volgens mij. Erg vreemd, want \s is toch gelijk aan 'een spatie óf een form-feed karakter, new-line karakter, enz'.

Sowieso vreemd, want als je \s verandert in \S werkt het ook niet. Dat zou betekenen dat een spatie geen 'whitespace karakter' is en ook geen 'non-whitespace karakter'. Wat is het dan wel :?.

In JScript werkt het in ieder geval wel. Jaja, ik heb het hier enkel over de Regular Expression >:). Iemand anders die dit gedrag kan verklaren misschien?

"It's not that I'm lazy. It's that I just don't care."


  • Quibus
  • Registratie: November 2000
  • Laatst online: 01-09 19:46
Thanx Xlnt, ik zal het eens proberen! Ik heb het idee dat de regex zelf goed is. Ik heb in de php editor Activestate Komodo 1.1 de regex gecheckt. En het programma zei dat het werkte. Maar ik zal eens proberen of dit werkt.
Pagina: 1