login  Naam:   Wachtwoord: 
Registreer je!
 Forum

reguliere expressies (Opgelost)

Offline wes - 02/08/2007 09:36
Avatar van wesPHP interesse (zie titel), hier heb ik wat over opgezocht, maar ik snap er echt nog steeds niets van . Ik wil namelijk een formuliertje maken dat mensen hun naam en email in moeten vullen, en op de pagina daarna ga ik met sql queries werken. Dus de naam en het email adres moeten wel gecontroleerd worden.

maar hoe doe je dat dan met reguliere expressies?

7 antwoorden

Gesponsorde links
Offline Abbas - 02/08/2007 09:43 (laatste wijziging 02/08/2007 09:46)
Avatar van Abbas Gouden medaille

Crew .NET
Tutorial

Voor de naam kan je controleren of er iets is ingevuld en als er iets ingevuld kan je controleren of de naam enkel letters (groot of klein) bevat, voorbeeld:

  1. <?php
  2.  
  3. $naam = "titjes" //kan ook waarde van een invoervak zijn
  4.  
  5. if(ereg("[a-zA-Z]", $naam))
  6. {
  7. echo "Goed";
  8. }
  9. else
  10. {
  11. echo "Niet goed";
  12. }
  13.  
  14. //Dit voorbeeld zal "Goed" geven, want $naam bevat kleine letters
  15. //en enkel kleine en grote letters zijn toegelaten...
  16. ?>

Offline wes - 02/08/2007 09:52
Avatar van wes PHP interesse Als ik titjes@/1' invul dan keurt 'ie het goed maar als ik @/1' dan niet. Dus volgens mij kun je dan nog steeds een sql-injectie uitvoeren
Offline Abbas - 02/08/2007 10:02
Avatar van Abbas Gouden medaille

Crew .NET
Raar, want met [a-zA-Z] mogen alleen letters gebruikt worden, anders is er geen "match". Probeer eens een naam met cijfers er in...
Offline wes - 02/08/2007 10:04 (laatste wijziging 02/08/2007 10:11)
Avatar van wes PHP interesse met wes123 vindt hij het ook goed, en met alleen 123 niet goed

Dus als er een normale letter in zit (bijv. a of A) dan keurt hij het goed maakt niet uit of er voor de rest nog andere tekens instaan 

In de tutorial staat ook eenzelfde script:

  1. <?php
  2. $string = "prle";
  3.  
  4. if(ereg("^[phq0-9]",$string)) {
  5. echo "TRUE";
  6. } else {
  7. echo "FALSE";
  8. }
  9. ?>


En daar wordt prle ook goedgekeurt omdat er een p inzit
Offline Abbas - 02/08/2007 10:13 (laatste wijziging 02/08/2007 10:15)
Avatar van Abbas Gouden medaille

Crew .NET
Natuurlijk wordt het goedgekeurd, de string mag beginnen met een 'p', 'h', 'q' of cijfers en dan is het goed...

Probeer deze eens:
  1. <?php
  2.  
  3. $naam = "titjes" //kan ook waarde van een invoervak zijn
  4.  
  5. if(ereg("^[a-z]+$", $naam))
  6. {
  7. echo "Goed";
  8. }
  9. else
  10. {
  11. echo "Niet goed";
  12. }
  13.  
  14. //Dit voorbeeld zal "Goed" geven, want $naam bevat kleine letters
  15. //en enkel kleine en grote letters zijn toegelaten...
  16. ?>

En dan ook met tekens/cijfers...
Offline wes - 02/08/2007 10:20 (laatste wijziging 02/08/2007 10:21)
Avatar van wes PHP interesse bingo, die doet het. Tit123jes doet het niet, maar Titjes wel. Bedankt !

edit: ook met andere tekens (heb getest met `) geeft hij fout weer, dus hij doet het perfect!! 
Offline Abbas - 02/08/2007 10:26
Avatar van Abbas Gouden medaille

Crew .NET
Alstublieft, had het even zelf bij het verkeerde eind. [a-zA-Z] is goed als de string al een letter (upper of lower case bevat)...
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.203s