login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Preg_match

Offline Flex1986 - 26/03/2007 15:32
Avatar van Flex1986Gouden medaille

Senior Member
http://plaatscode.be/4773/

Ik heb een probleem met preg_match. Ik wil dat het invoer veld categorie alleen [a-zA-z] bevat.

En het veld security mag alleen maar [0-9] bevatten. Nu heb ik meerdere dingen geprobeert maar telkens doet ie het maar voor de helft. Hij controleert dus bijv of ik begin met letter of eindig maar wat ik ertussen in doe dat intereseert hem niet.

Ik zal het waarschijnlijk helemaal fout doen maar ik snap niks van preg_match & eregi

Mvg
Flex1986

10 antwoorden

Gesponsorde links
Offline Ibrahim - 26/03/2007 15:34
Avatar van Ibrahim PHP expert dan zul je ^ aan het begin van de regex moeten zetten en $ aan het einde
Offline Flex1986 - 26/03/2007 15:42 (laatste wijziging 26/03/2007 15:42)
Avatar van Flex1986 Gouden medaille

Senior Member
  1. if (preg_match ('^[a-zA-Z]$', $_POST['Categorie'])) {
  2. if (preg_match ('^[0-9]$', $_POST['Security'])) {
  3.  
  4. echo $_POST['Categorie']."<br>";
  5. echo $_POST['Security'];
  6.  
  7. }
  8. else { echo "<script type=\"text/javascript\"> alert(\"U heeft geen Securitylevel geselecteerd.\"); </script>"; }
  9. }
  10. else { echo "<script type=\"text/javascript\"> alert(\"De categorie bevat tekens die niet zijn toegestaan.\"); </script>"; }


Zo ziet het er nu uit. Krijg nu alleen altijd de melding "De categorie bevat tekens die niet zijn toegestaan". Terwijl me invoer gewoon abc is.

Zal wel iets heel stoms zijn maar uik snap echt even niet wat ik fout doe en er zijn zoveel hits als ik overal op preg_match zoek dat ik door de bomen het bos niet meer zie.
Offline Ibrahim - 26/03/2007 15:47 (laatste wijziging 26/03/2007 15:48)
Avatar van Ibrahim PHP expert dat komt omdat je nog een + achter je characterclass moet zetten, nu accepteert hij alleen 1 teken


kijk eens, een mooie reguliere expressies tutorial voor als je meerdere onverwachte resultaten krijgt.

Klik
Offline Rik - 26/03/2007 15:54 (laatste wijziging 26/03/2007 15:55)
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Je bent ook een delimiter vergeten...

Dus "/[a-z]/" ipv "[a-z]". Achter de delimter kan je pattern modifiers meegeven, een i zorgt bijvoorbeeld om het case insensitive te maken.
Offline Ibrahim - 26/03/2007 15:56
Avatar van Ibrahim PHP expert wel raar dat je geen error van PHP hebt gekregen, want als je een delimiter vergeet zou je dus wel een error moeten ontvangen 
Offline Ultimatum - 26/03/2007 16:06
Avatar van Ultimatum PHP expert preg_match ('^[a-zA-Z]$', het moet toch ook zonder de quotes (')?
Offline Flex1986 - 26/03/2007 16:10 (laatste wijziging 26/03/2007 16:16)
Avatar van Flex1986 Gouden medaille

Senior Member
Dank voor de link. Had hem al gelezen maar met preg_match werkt deze niet.

  1. (preg_match ('^[a-zA-Z]+$', $_POST['Categorie']))


Met eregi werkt ie wel. Omdat ik zag dat eregi standaard vervalt in php6 wil ik deze uitsluiten omdat het een hele nieuwe site wordt.

Ik weet dat de kans klein wordt dat ze ooit op php6 komen maar toch. Je kan beter het zekere voor het onzekere nemen. Maar hoe kan ik het nu werken krijgen met preg_match want dat lukt me dus nog niet.

Weet iemand ook waarom eregi eruit gaat?

Edit: Nieuwe reacties even doorwerken.

Edit2:
  1. (preg_match ('/^[a-zA-Z]+$/', $_POST['Categorie']))

Zo werkt ie perfect bedankt voor jullie hulp. Jullie zijn geweldig ;) Ik blijf het lastig vinden 
Offline Ibrahim - 26/03/2007 17:19
Avatar van Ibrahim PHP expert
Citaat:
Zo werkt ie perfect bedankt voor jullie hulp. Jullie zijn geweldig ;) Ik blijf het lastig vinden 


bekijk dan mijn tutorial => klik hier

Citaat:
preg_match ('^[a-zA-Z]$', het moet toch ook zonder de quotes (')?


sinds wanneer moet een string buiten quotes ?
Offline Flex1986 - 26/03/2007 18:22
Avatar van Flex1986 Gouden medaille

Senior Member
Je tutorial heb ik al meerdere keren gelezen. Maar ik heb hem uitgeprint en zal hem voortaan voor het slapen gaan 1 keer doorlezen totdat ik het snap.

Goed? 
Offline Ibrahim - 26/03/2007 22:18
Avatar van Ibrahim PHP expert dat is niet genoeg, ik zal eens een opname maken, kun je tijdens het slapen ook leren 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.226s