login  Naam:   Wachtwoord: 
Registreer je!
 Forum

eregi

Offline avickum - 12/11/2010 21:45
Avatar van avickumNieuw lid Hallo,
het volgende stukje script werkt niet, bij het registreren moet er een waarschuwing komen als je vreemde tekens in je gebruikersnaam hebt, maar als ik !@#$%^&*() invul als gebruikersnaam, kan ik gewoon een account maken, kan iemand me helpen?

  1. elseif(!eregi("[A-Za-z0-9]", $_POST['gebruikersnaam'])) {
  2. echo "<p align=\"center\"><b>Je gebruikersnaam mag alleen letters en cijfers bevatten</b></p>";
  3. }

4 antwoorden

Gesponsorde links
Offline avdg - 12/11/2010 22:28
Avatar van avdg PHP gevorderde doe eens '^[A-Za-z0-9]{2,}$'

de 2 mag je vervangen door een hogere waarde (het zegt gewoon het minimum aantal tekens)
Offline pijke - 13/11/2010 09:15
Avatar van pijke Gouden medaille

Lid
preg_match('/[A-Za-z0-9]+/', $_POST['gebruikersnaam'])
Offline Martijn - 15/11/2010 19:48 (laatste wijziging 15/11/2010 19:53)
Avatar van Martijn Crew PHP pijke, die van jou is verkeerd die van jou mached 'AAA' maar ook '#AAA'. Jouw regex doet "check of de string een a-Z0-9 bevat, zo ja, return true"

die van avdg heeft het dakje ( ^ ), die doet "als het iets anders matched dan a-Z0-9" return true. dus if true -> verkeerde teken

kan korter:
"#^[\d\w]#si" -> [digits words] Singleline caseInsensative


edit: en erigi() is verouderd, we gebruiken tegenwoordig preg_match(), werkt voor de rest hetzelfde, maar beter 
Offline pijke - 15/11/2010 20:02
Avatar van pijke Gouden medaille

Lid
Martijn schreef:
edit: en erigi() is verouderd, we gebruiken tegenwoordig preg_match(), werkt voor de rest hetzelfde, maar beter 
en sneller.
had niet gezien dat ie fout was, sorry daarvoor.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.209s