login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[php] Reguliere expressie

Offline stenno - 21/10/2005 09:33 (laatste wijziging 21/10/2005 09:36)
Avatar van stennoPHP interesse Beste sitemasters,

Ik heb een veld in mijn formulier waar een link moet worden ingevuld.

De link ziet er zo uit

http://www.king...d=xxxxxxxx

of zo

HTTP://WWW.KING...D=XXXXXXXX

of zo

www.kingsofchaos.com/recruit.php?uniqid=xxxxxxxx

of zo

WWW.KINGSOFCHAOS.COM/RECRUIT.PHP?UNIQID=XXXXXXXX

PS. die x'en zijn altijd getallen 0 t/m 9 of kleine letters a t/m z.

Dus ben ik mijn ereg begonnen met:

$string = $_POST['userlink'];
(ereg("^[www.kingsofchaos.com/recruit.php?uniqid=\ht tp://ww w.kingsofchaos.com/recruit.php?uniqid=]",$string))

edit1) spaties ertussen omdat sitemaster anders flipt

Alleen hoe ga ik nu verder ?? Hoe zorg je ervoor dat hij controleert of de laatste acht tekens van $string getallen 0 t/m 9 zijn of kleine/grote letters a-z ???

Graag hulp ;-)

11 antwoorden

Gesponsorde links
Offline rambo - 21/10/2005 09:50
Avatar van rambo HTML beginner Hoezo laat je de gebruiker niet gewoon alleen die x-en invullen? Dit kun je dan controleren met (niet getest):
ereg("[A-Za-z0-9]{8}", $string);
Offline stenno - 21/10/2005 09:51 (laatste wijziging 21/10/2005 09:57)
Avatar van stenno PHP interesse okeej goed idee ;)

Nog niet aan gedacht

ereg("[A-Za-z0-9]{8}$", $string);

Misschien nog een kleine verbetering of juist niet ??

edit1) het werkt niet !
Bovendien het moeten 8 karakters zijn anders moet er een error komen .
Offline b4nkr0bz0r - 21/10/2005 10:37 (laatste wijziging 21/10/2005 11:40)
Avatar van b4nkr0bz0r PHP gevorderde
  1. <?php
  2. if (preg_match('#(=[a-z0-9]{8})$', substr($_SERVER['REQUEST_URI'], -9))
  3. {
  4. echo 'match ;)';
  5. }
  6. else
  7. {
  8. echo 'geen match';
  9. }
  10. ?>
Offline Wijnand - 21/10/2005 11:14 (laatste wijziging 21/10/2005 11:16)
Avatar van Wijnand Moderator
  1. <?php
  2. if (ereg("=[a-zA-Z0-9]{8}$",$string))
  3. {
  4. echo 'goedzo';
  5. }
  6. else
  7. {
  8. echo 'niet goed :(';
  9. }
  10. ?>


zo dan?

hij kijkt naar het einde, controleert de laatste 8 karakter een letter of cijfer is en dan kijkt hij ook nog of er een = voor staat.
Offline stenno - 21/10/2005 12:55
Avatar van stenno PHP interesse
Ok maar ik heb er nu voor gekozen dat ze alleen de laatste acht karakters mogen in vullen.

Dus dat het 8 karakter lange input.
Die bestaat uit

1) A t/m Z
2) a t/m z
3) 1 t/m 9

En mag dus echt niet langer of korter dan 8 karakters zijn. Hoe doe ik dit ??
Offline Wijnand - 21/10/2005 13:04
Avatar van Wijnand Moderator Dat doe je dus zo, hij zoekt naar precies 8 tekens...
Offline stenno - 21/10/2005 13:11 (laatste wijziging 21/10/2005 13:12)
Avatar van stenno PHP interesse Ja maar zonder = moet hij naar acht tekens zoeken

De bezoeker voert van deze link:

www.kingsofchaos.com/recruit.php?uniqid=xxxxxxxx

alleen de x'en in. Die x'en kunnen zijn

kleine letters a t/m z
grote letters A t/m Z
getallen 1 t/m 9

Hoe doe ik dit ?? Dus Dat er maar 8 karakters ingevuld mogen worden, anders altijd error!!!. Die 8 ingevulde
moet ook nog aan de bovenstaande voorwaarden voldoen, anders error !! .

Tja een beetje moeilijk uit te leggen
Offline Wijnand - 21/10/2005 13:15 (laatste wijziging 21/10/2005 13:18)
Avatar van Wijnand Moderator dat zeg ik dus.....

Eerst zoekt mijn "script" naar de = (die op de 9de positie vanaf rechts staat) en vanaf daar zoekt hij 8 letters/cijfers. Het moet precies 8 zijn, niet 7 en ook niet 9 maar 8 karakters.


ter verduidelijking:

"=[a-zA-Z0-9]{8}$"

[a-zA-Z0-9]{8} controleert of de laatste 8 karakters letters of cijfers zijn.

= controleert of er voor die 8 karakters een = staat. Dit is belangrijk omdat er achter de = maar 8 karakters mogen zijn.
Offline stenno - 21/10/2005 13:18
Avatar van stenno PHP interesse
Ja maar dat gedeelte word helemaal niet ingevoerd. ik weet dat het zo in het topic staat.

Dit wordt niet ingevoerd :

www.kingsofchaos.com/recruit.php?uniqid=

Alleen die x'en worden in het veld ingevoerd

;-) sorry voor de ondeduilijkheid van het topic
Offline Wijnand - 21/10/2005 13:21
Avatar van Wijnand Moderator dus je bedoeld dat er in een variabele alleen die "8 karakters" staan?

dan doe je dit:

  1. <?php
  2. if (ereg("^[a-zA-Z0-9]{8}$",$string))
  3. {
  4. echo 'goedzo';
  5. }
  6. else
  7. {
  8. echo 'niet goed :(';
  9. }
  10. ?>
Offline stenno - 21/10/2005 13:24
Avatar van stenno PHP interesse ok dit is hem bedankt 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.264s