J'ai besoin d'une petite mise à jour de syntaxe : fonction eregi

J'ai besoin d'une petite mise à jour de syntaxe : fonction eregi - PHP - Programmation

Marsh Posté le 20-11-2009 à 18:29:25    

Salut,
 
Petite question à 5 euros!!!
 
J'ai récupérer un bout de code mais une partie ne fonctionne plus à cause de php 5.3
Mais comme je n'y connait rien, j'arrive pas à trouver la bonne syntaxe.

Code :
  1. elseif (!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.
  2. [a-z]{2,4}$",$_POST["son_email"])){ // On vérifie si l'email est bien de la forme  
  3. messagerie@domaine.tld (cf cours d'expressions régulières)
  4.             $erreur="Votre adresse e-mail n'est pas valide...";
  5.         }

Apparemment avec un preg_match ça doit pouvoir fonctionner...
Vous pourriez me resyntaxer ce bout de code siouplait.
 
Merci d'avance

Reply

Marsh Posté le 20-11-2009 à 18:29:25   

Reply

Marsh Posté le 20-11-2009 à 19:01:46    

meme avec php 5.3, depuis longtemp tu peu faire
 
filter_var($email, FILTER_VALIDATE_EMAIL);

Reply

Marsh Posté le 20-11-2009 à 19:30:02    

stealth35 a écrit :

meme avec php 5.3, depuis longtemp tu peu faire
 
filter_var($email, FILTER_VALIDATE_EMAIL);

Je l'intègre comment là dedans? Ligne 7 à 9.

Code :
  1. if (empty($_POST["son_pseudo"])) {
  2. $erreur="Vous n'avez pas entré votre pseudo...";
  3. }
  4. elseif (empty($_POST["son_email"])) {
  5. $erreur="Nous avons besoin de votre e-mail pour vous répondre...";
  6. }
  7. elseif (!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.
  8. [a-z]{2,4}$",$_POST["son_email"])){
  9. $erreur="Votre adresse e-mail n'est pas valide...";
  10. }
  11. elseif (empty($_POST["son_objet"])) {
  12. $erreur="Vous devez entrer l'objet de votre message...";
  13. }
  14. elseif (empty($_POST["son_message"])) {
  15. $erreur="Merci de saisir un message...";
  16. }
  17. else {
  18. $etat="ok";
  19. }
  20. }
  21. else {
  22. $etat="attente";
  23. }
  24. if ($etat!="ok" ){
  25. if ($etat=="erreur" ){
  26. echo "<span style=\"color:red\">".$erreur."</span><br /><br />\n";
  27. }


Message édité par djodjolyon le 20-11-2009 à 19:30:35
Reply

Marsh Posté le 20-11-2009 à 20:05:29    

stealth35 a écrit :

meme avec php 5.3, depuis longtemp tu peu faire
 
filter_var($email, FILTER_VALIDATE_EMAIL);


php 5.2 c'est pas si vieux.:o


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 20-11-2009 à 20:10:24    

skeye a écrit :


php 5.2 c'est pas si vieux.:o


 
c'est vrai, mais depuis fin 2006 on a un peu le temps d'etre au courant  :sleep:  
 
 
 
sinon djodjolyon  , tu le met dans ta condition comme ton regexp, filter_var te rendre  vrai ou faux

Reply

Marsh Posté le 20-11-2009 à 20:52:04    

[quotemsg=1942947,5,236300]
 
Bon j'ai écris ça :

Code :
  1. elseif(!filter_var($son_email, FILTER_VALIDATE_EMAIL)) {
  2.   $erreur="Votre adresse e-mail n'est pas valide...";
  3.  }


Il me renvoit:

Code :
  1. Fatal error: Call to undefined function: filter_var() in /mnt/000/sdb/9/9/xxxxxxxxx/formcontact.php on line 36

:??:


Message édité par djodjolyon le 20-11-2009 à 21:29:48
Reply

Marsh Posté le 20-11-2009 à 21:01:24    

étrange..., regarde si c'est actif via ton phpinfo(), mais par default ca l'est

 

http://www.php.net/manual/fr/ref.filter.php


Message édité par stealth35 le 20-11-2009 à 21:02:55
Reply

Marsh Posté le 20-11-2009 à 21:56:51    

Bon en fait je viens de voir que les serveurs free ne prennent pas en charge "filter_var".
 
Donc j'ai changé en

Code :
  1. if (!preg_match("#^&#91;a-zA-Z0-9._-&#93;+@&#91;a-zA-Z0-9._-&#93;{2,}\.&#91;a-z&#93;{2,4}$#", $email))


Mais j'ai une autre erreur :

Code :
  1. Warning: preg_match() [function.preg-match]: Unknown modifier '9' in /mnt/000/sdb/9/9/xxxxxxxxx/formcontact.php on line 36


Tu vois ce que ça peux vouloir dire Unknown modifier '9' et comment on pourrait régler ça?


Message édité par djodjolyon le 20-11-2009 à 21:57:34
Reply

Marsh Posté le 20-11-2009 à 22:13:32    

a donct'es pas en php 5.3,  t'as activé le php 5 quand meme sur free ?

Reply

Marsh Posté le 20-11-2009 à 22:18:21    

Je pensais que j'étais en php 5.3 mais effectivement non!
je viens de me mettre en php 5 mais ça ne change rien!
Je crois que d'ici peu je vais chercher un hébergeur...


Message édité par djodjolyon le 20-11-2009 à 22:19:16
Reply

Marsh Posté le 20-11-2009 à 22:18:21   

Reply

Marsh Posté le 20-11-2009 à 22:56:59    

pour l'email j'avai ca pendant un moment, meme si c'est plus simple que le vrai ca marche quand meme
 
/[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/

Reply

Marsh Posté le 21-11-2009 à 14:56:39    

Voilà le code que j'ai rentré :

Code :
  1. elseif (!preg_match("/[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/", $son_email))


Et une erreur similaire :

Code :
  1. Warning: preg_match() [function.preg-match]: Unknown modifier '=' in /mnt/000/sdb/9/9/xxxxxxxxx/formcontact.php on line 36

J'ai pas d'erreur dans le code selon toi sur la syntaxe?
Sinon tant pis...
De toute façon, je reçois l'email avec une fausse adresse mais si c'est qu'un arobase ou un point à changer, ça ne devrait pas être trop difficile de trouver où le placer...


Message édité par djodjolyon le 22-11-2009 à 16:24:00
Reply

Marsh Posté le 23-11-2009 à 15:04:41    

Code :
  1. $email     = 'test@test.com';
  2.     $pat     = "/^((\\\"[^\\\"\\f\\n\\r\\t\\b]+\\\" )|([A-Za-z0-9_][A-Za-z0-9_\\!\\#\\$\\%\\&\\'\\*\\+\\-\\~\\/\\=\\?\\^\\`\\|\\{\\}]*(\\.[A-Za-z0-9_\\!\\#\\$\\%\\&\\'\\*\\+\\-\\~\\/\\=\\?\\^\\`\\|\\{\\}]*)*))@((\\[(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))\\])|(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))|((([A-Za-z0-9])(([A-Za-z0-9\\-])*([A-Za-z0-9]))?(\\.(?=[A-Za-z0-9\\-]))?)+[A-Za-z]+))$/D";
  3.     
  4.     if(preg_match($pat, $email))
  5.     {
  6.         echo 'valide';
  7.     }
  8.     else
  9.     {
  10.         echo 'pas valide';
  11.     }
 

pour le regexp, j'ai simplement recopié celle de la source php
http://svn.php.net/viewvc/php/php- [...] xt%2Fplain


Message édité par stealth35 le 23-11-2009 à 15:05:11
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed