login  Naam:   Wachtwoord: 
Registreer je!
 Forum

!Eregi Geval

Offline KmkZ - 23/10/2004 20:22
Avatar van KmkZLid Hey allemaal, ik probeerde zojuist een script waarvan ik het nog niet 100% snapte,
het script is zoals dit:
Je mag alleen deze gevallen gebruiken in je gebruikersnaam:
_ - At/mZ en 0t/m9 en dat was het, de rest mag niet..

Ik heb al dit:

  1. } elseif(!eregi("[A-Za-z0-9_-]", $_POST['username'])) {


Maar dat werkte geen ene moer, je kan zomaar @ en al gebruiken, wie kan um fixen aub? 

2 antwoorden

Gesponsorde links
Offline Scott - 23/10/2004 20:57
Avatar van Scott Gouden medaille

PHP ver gevorderde
Je controleert nu of er letters, getallen _ en - in voorkoemn, niet of de hele string daaruit bestaat. Doe het zo:

} elseif(!eregi("^[A-Za-z0-9_-]$", $_POST['username'])) {
Offline Thomas - 24/10/2004 00:34 (laatste wijziging 24/10/2004 00:38)
Avatar van Thomas Moderator eregi voert al een case-insensitive vergelijking uit.
[] is voor een klasse karakters, het beschrijft welke karakters zijn toegestaan, maar niet hoeveel. Hiervoor zijn +, * en {} voor.

+ 1 of meer karakters van deze klasse
* 0 of meer karakters van deze klasse
{min, max} geeft een min(imum) of max(imum) aantal karakters van de klasse aan.

^ duidt het begin van een te controleren patroon aan, $ het einde.
Als het eerste teken van een klasse een ^ is, dan wil dit zeggen: "de ontkenning (negatie) van de klasse".

Als je een patroon hebt: ^[^a], dan wil dit zeggen: alle patronen die niet met een "a" beginnen.

Een controle op een niet-lege invoer (1 of meer karakters) bestaande uit enkel alfa-numerieke karakters doe je dus als volgt:

  1. <?php
  2. $patroon = "^[a-z0-9]+$";
  3. if(eregi($patroon, $_POST['username'])) {
  4. // niet lege invoer bestaande uit toegestane karakters
  5. ...
  6. } else {
  7. // niet toegestane invoer of lege invoer
  8. ...
  9. }
  10. ?>
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.19s