FORUM Tom's Hardware » Programmation » PHP & MySQL & ASP » Probleme REGEX PHP
 

Probleme REGEX PHP

Il y a 400 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici
Ajouter une réponse



 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : Probleme REGEX PHP
 
Plus d'informations

:) Bonjour donc en faite mon soucis c'est que la correction de mon formulaire par les regex ne ce fait pas! :sweat: !j'envoie le formulaire sur la meme page.Bon je l'ai pas fini faut aussi qu'après si tou est juste que je l'envoie a ma boite voila bon.Je mais que le code du formulaire avec les regex biensur .
 
Merci d'avance ;)
 
 

Code :
  1. <form method="post">
  2.                 <p>
  3.                 <label>
  4.                 Civilité&nbsp; :<br/>
  5.                 <select name="civilite">
  6.                     <option value="Monsieur">Mr.</option>
  7.                     <option value="Madame">Mrs.</option>
  8.                 </select>
  9.                 </label>
  10.                 </p>
  11.                 <p>
  12. <?
  13. if (isset($_POST['name']))
  14. {
  15.     if (preg_match("#[a-zA-Z][^0-9]#",$_POST['name']))
  16.     {
  17.      echo 'Le ' . $_POST['name']. ' est <strong>valide</strong> !';
  18.     }
  19.     else
  20.     {
  21.      echo 'Le' . $_POST['name'].' n\'est pas<strong>valide</strong>, recommencez!';
  22.     }
  23. }
  24. ?>
  25.                 </p>
  26.                 <p>
  27.                     <label>
  28.                     Nom &nbsp;:<br/>
  29.                     <input type="text" name="name" size="30" tabindex="10"/></label>
  30.                 </p>
  31.                 <p>
  32. <?
  33. if (isset($_POST['prenom']))
  34. {
  35.     if (preg_match("#[a-zA-Z][^0-9]#",$_POST['prenom']))
  36.     {
  37.     echo 'Le ' . $_POST['prenom'].' est <strong>valide</strong>!';
  38.     }
  39.     else
  40.     {
  41.     echo 'Le ' . $_POST['prenom'].' n\'est pas<strong>valide</strong>, recommencez!';
  42.     }
  43. }
  44. ?>
  45.                 </p>
  46.                 <p>
  47.                     <label>
  48.                     Prénom &nbsp;:<br/>
  49.                     <input type="text" name="prenom" size="30"tabindex="20" /></label>
  50.                 </p>
  51.                 <p>
  52. <?
  53. if (isset($_POST['entreprise']))
  54. {
  55.     if (preg_match("#[a-zA-Z0-9]#",$_POST['entreprise']))
  56.     {
  57.     echo 'Le nom de ' . $_POST['entreprise'].' est <strong>valide</strong>!';
  58.     }
  59.     else
  60.     {
  61.     echo 'Le nom de' . $_POST['entreprise'].' n\'est pas<strong>valide</strong>, recommencez!';
  62.     }
  63. }
  64. ?>
  65.                 </p>
  66.                 <p>
  67.                     <label>
  68.                     Entreprise&nbsp;:<br/>
  69.                     <input type="text" name="entreprise" size="30"tabindex="30" /></label>
  70.                 </p>
  71. <?
  72. if (isset($_POST['email']))
  73. {
  74.     if (preg_match("#^[a-zA-Z0-9._-]+@[a-z0-9._-]{2, }\.[a-z]{2,4}$#",$_POST['email']))
  75.     {
  76.     echo 'L\'adresse ' . $_POST['email'].' est <strong>valide</strong>!';
  77.     }
  78.     else
  79.     {
  80.     echo 'L\'adresse' . $_POST['email'].' n\'est pas<strong>valide</strong>, recommencez!';
  81.     }
  82. }
  83. ?>
  84.                 <p>
  85.                     <label>
  86.                     Adresse email&nbsp;:<br/>
  87.                     <input type="text" name="email" size="30" tabindex="40"/></label>
  88.                 </p>
  89.                 <p>
  90. <?
  91. if (isset($_POST['telephone']))
  92. {
  93. $_POST['telephone'] = htmlentities($_POST['telephone']);
  94.     if (preg_match("#^+?00[1-68]{1-2}([-. ]?[0-9]{2}){4}$#",$_POST['telephone']))
  95.     {
  96.     echo 'Le numéro de ' . $_POST['telephone'].' est <strong>valide</strong>!';
  97.     }
  98.     else
  99.     {
  100.     echo 'Le numéro de' . $_POST['telephone'].' n\'est pas<strong>valide</strong>, recommencez!';
  101.     }
  102. }
  103. ?>
  104.                 </p>
  105.                 <p>
  106.                     <label for="telephone">
  107.                     Telephone&nbsp;:<br/>
  108.                     <input type="text" name="telephone" size="30" tabindex="60"input id="telephone"/></label>
  109.                 </p>
  110.                 <p>
  111. <?
  112. if (isset($_POST['message']))
  113. {
  114.     if (preg_match("#[*]#",$_POST['message']))
  115.     {
  116.     echo 'Votre ' . $_POST['message'].' est <strong>valide</strong>!';
  117.     }
  118.     else
  119.     {
  120.     echo 'Votre' . $_POST['message'].' n\'est pas<strong>valide</strong>, recommencez!';
  121.     }
  122. }
  123. ?>
  124.                     </p>
  125.                     <p>
  126.                     <label>
  127.                     Objet du message&nbsp;:<br/>
  128.                     <textarea name="message" rows="10" cols="50"tabindex="70"></textarea>
  129.                     </label>
  130.                     </p>
  131.                     <p>
  132.                     <INPUT type="submit" value="Envoyer"name="Envoyer"/>
  133.                     </p>
  134.             </form>


Message édité par azerty74 le 12-06-2007 à 19:02:17

Profil : Pointeur
Plus d'informations

merci de respecter les regles .


---------------
Da Bidz Triad©®™: Bidz Interceptor
.:: Smileyz version 4.2 [050625]::. -- Code source disponible sous licence GPL.
[u
Je me la pête
Profil : /!\ Docteur - PDG
Plus d'informations

En gros, si j'ai bien compris :

  • pour nom, prénom et entreprise, tu ne veux que des lettres ? Si oui #[a-zA-Z]+#
  • pour le mail et le téléphone, il y a le code détaillé dans le cours php du site du zéro : http://www.siteduzero.com/tuto-3-1 [...] e-2-2.html
  • pour le message, tu veux quoi au juste ?


Dans tous les cas, à ta place, je lirais le tuto du site du zéro ;)
 
Et pour tester tes regex, un petit soft bien sympa : regex coach


---------------
.: La Pipicy Team :love: :.
Plus d'informations

justement j'ai appris les regex sur le site du zéro.
Le seul problème c'est que sur le site du zéro les numéro ne peuvent pas étre suisse ou étrangé...
 

Plus d'informations

Mais mon problème c'est que rien ne s' affiche quand j'envoie le formulaire.
 
 
Même en mettant n'importe quoi !!!!

Je me la pête
Profil : /!\ Docteur - PDG
Plus d'informations

Essaie :

  • de mettre un argument action="taPage.php" dans la balise <form>
  • de ne pas utiliser name="name" pour éviter les confusions de traitement
  • d'utiliser des balises php explicite, soit en ouverture <?php et en fermeture  ?>


---------------
.: La Pipicy Team :love: :.
Plus d'informations

ok je test

Plus d'informations

ok tou est fait mais bon rien ne ce passe pas de réponse....
faudrai pas que j'utilise submit ,je lui est mi un nom mais il  me sert a quedal.

Plus d'informations

Merci mister edouard de venir m'aider sur le forum  :bounce:  :D !!!!!! :sol:  

Code :
  1. <?php
  2. if (isset($email))
  3. {
  4. $email=htmlentities($email);
  5.     if (preg_match("#^[a-zA-Z0-9._-]+\@[a-z0-9._-]{2,}\.[a-z]{2,4}$#",$email))
  6.     {
  7.     echo '<font color=\"red\">Votre adresse email ' .$email.' est <strong>valide</strong>!</font>';
  8.     }
  9.     else
  10.     {
  11.     echo '<font color=\"red\">Votre adresse email ' . $email.' <strong>n\'est pas valide</strong>, recommencez!</font>';
  12.     }
  13. }
  14. ?>                </p>
  15.                 <p>
  16.                     <label for="telephone">
  17.                     Telephone&nbsp;:<br/>
  18.                     <input type=text name=telephone size="30" tabindex="60"input id="telephone"/></label>
  19.                 </p>
  20.                 <p>
  21. <?php
  22. if (isset($telephone))
  23. {
  24. $telephone= htmlentities($telephone);
  25.     if (preg_match("#^(\+?)(0*)([0-8]?)[0-8][0-68]([0-8]?)([-.\s]?[0-9]{2}){4}$#",$telephone))
  26.     {
  27.     echo '<font color=\"red\">Le numéro de téléphone : ' .$telephone.' est <strong>valide</strong>!</font>';
  28.     }
  29.     else
  30.     {
  31.     echo '<font color=\"red\">Le numéro de téléphone : ' .$telephone.' <strong>n\'est pas valide</strong>, recommencez!</font>';
  32.     }
  33. }
  34. ?>
  35.         </p>
  36.                 <p>
  37.                     <label>
  38.                     Objet du message&nbsp;:<br/>
  39.                     <textarea name=message type=text id="message" rows="10" cols="50"tabindex="70"></textarea>
  40.                     </label>
  41.                 </p>
  42.                 <p>
  43. <?php
  44. if (isset ($message))
  45. {
  46. $message= htmlentities($message);
  47.     if (preg_match("#[\w\t\n\r\s\?\{\(\[\+\$\*\%\!\:\@\^\~\€\=\¨\£]+#",$message))
  48.     {
  49.     echo '<font color=\"red\">Votre message est <strong>valide</strong>!</font>';
  50.     }
  51.     else
  52.     {
  53.     echo '<font color=\"red\">Votre message <strong>n\'est pas valide</strong>, recommencez!</font>';
  54.     }
  55. }
  56. ?>
  57.                 <p>
  58.                     <INPUT  name=&quot;B1 type=submit value=Envoyer id="&quot;B1">
  59.                 </p>
  60.             </form>


Message édité par azerty74 le 14-06-2007 à 20:14:39
Je me la pête
Profil : /!\ Docteur - PDG
Plus d'informations

Voilà un code qui marche très bien chez moi. Donc si ça ne marche toujours pas chez, il va falloir vérifier que ton hébergeur connaît bien le php ;)
 

Code :
  1. <?php
  2.     function verif_chaine($chaine, $regex)
  3.     {
  4.         return (preg_match($regex,$chaine)) ? TRUE : FALSE;
  5.     }
  6.     $champ_invalide = '';
  7.     if(isset($_POST['nom']))
  8.     {
  9.         $regex = array('chaine'=>'#^[a-zA-Z]+$#', 'email'=>'#^[a-zA-Z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#', 'telephone'=>'#^(\+?)(0*)([0-8]?)[0-8][0-68]([0-8]?)([-.\s]?[0-9]{2}){4}$#');
  10.         $champs = array('nom'=>$_POST['nom'], 'prenom'=>$_POST['prenom'], 'entreprise'=>$_POST['entreprise'], 'email'=>$_POST['email'], 'telephone'=>$_POST['telephone']);
  11.         $champs_controles = array('nom'=>'chaine', 'prenom'=>'chaine', 'entreprise'=>'chaine', 'email'=>'email', 'telephone'=>'telephone');
  12.         foreach($champs_controles as $key=>$value)
  13.         {
  14.             if($champs[$key] != '')
  15.                 $champ_invalide .= (!verif_chaine($champs[$key], $regex[$value])) ? '<strong>'.htmlentities($champs[$key]).'</strong> (champ <em>'.$key.'</em> ), ' : '';
  16.         }
  17.     }
  18. ?>
  19. <form method="post">
  20.     <p>
  21. <?php
  22.     if($champ_invalide)
  23.         echo 'Les valeurs suivantes sont invalides : '.substr_replace($champ_invalide, '.', -2, 2);
  24. ?>
  25.     </p>
  26.     <p>
  27.         <label>Civilité&nbsp; :<br/>
  28.             <select name="civilite">
  29.                     <option value="Monsieur">Mr.</option>
  30.                     <option value="Madame">Mrs.</option>
  31.             </select>
  32.         </label>
  33.     </p>
  34.     <p>
  35.         <label>Nom &nbsp;:<br/>
  36.             <input type="text" name="nom" size="30" tabindex="10"/>
  37.         </label>
  38.     </p>
  39.     <p>
  40.         <label>Prénom &nbsp;:<br/>
  41.             <input type="text" name="prenom" size="30" tabindex="20" />
  42.         </label>
  43.     </p>
  44.     <p>
  45.         <label>Entreprise&nbsp;:<br/>
  46.             <input type="text" name="entreprise" size="30" tabindex="30" />
  47.         </label>
  48.     </p>
  49.     <p>
  50.         <label>Adresse email&nbsp;:<br/>
  51.             <input type="text" name="email" size="30" tabindex="40"/>
  52.         </label>
  53.     </p>
  54.     <p>
  55.         <label for="telephone">Telephone&nbsp;:<br/>
  56.             <input type="text" name="telephone" size="30" tabindex="60"input id="telephone"/>
  57.         </label>
  58.     </p>
  59.     <p>
  60.         <label>Objet du message&nbsp;:<br/>
  61.             <textarea name="message" rows="10" cols="50" tabindex="70"></textarea>
  62.         </label>
  63.     </p>
  64.     <p>
  65.         <input type="submit" value="Envoyer" name="Envoyer"/>
  66.     </p>
  67. </form>


 
Tu remarqueras que j'ai sensiblement réduit la taille du code php ;)


---------------
.: La Pipicy Team :love: :.
G.M.G.V.S.O.
Profil : Modo matériel
Plus d'informations

marsien: truc qui n'a rien à voir, tu es sur qu'on peut mettre le <input> (et autres <textarea> ) dans le <label> ?
 
edit -> j'ai cherché et oui on peut ... désolé ;)


Message édité par boub popsy team le 14-06-2007 à 22:17:41

---------------
SPAM & WAREZ = Ban!
Ultimate Boot CD | Memtest+
Mon bar préféré à Lyon ! | Bijoux Fantaisie de Créateur !
Je me la pête
Profil : /!\ Docteur - PDG
Plus d'informations

Je préfère aussi le <label for="..."> se rapportant à un id précis :)
 
Tu es moins contraint pour la mise en page :)


---------------
.: La Pipicy Team :love: :.
Plus d'informations

:jap: ouai merci mais bon j'ai deja trouvé la réponse !!! maintenant mon problème c'est d'envoyer le formulaire!! :p  
 
 
 
 

Code :
  1. <p>
  2. <?php
  3. if (isset ($message))
  4. {
  5. $message= htmlentities($message);
  6.     if (preg_match("#[\w\t\n\r\s\?\{\(\[\+\$\*\%\!\:\@\^\~\€\=\¨\£]+#",$message))
  7.     {
  8.     echo '<font color=\"red\">Votre message est <strong>valide</strong>!</font>';
  9.     }
  10.     else
  11.     {
  12.     echo '<font color=\"red\">Votre message <strong>n\'est pas valide</strong>, recommencez!</font>';
  13.     }
  14. }
  15. ?>
  16.                 <p>
  17.                     <INPUT  name=ok type=submit value=Envoyer id="ok">
  18.                 </p>
  19.             </form>
  20. <?php
  21. $subject="coucou";
  22. $h  = "From: " . $destinataire ;
  23. $contenu = "$nom,$prenom,$entreprise,$email,$telephone,$message";
  24. while (list($key, $val) = each($HTTP_POST_VARS)) {
  25.   $message .= "$key : $val\n";
  26. }
  27. $ok=mail($destinataire, $subject, $contenu, $h);
  28. ?>
  29. </p>


 
mAIS BON c'est pas juste !!!
ca me renvoie.

Code :
  1. Warning: Failed to Connect in c:\program files\easyphp\www\cabinet-ballara\nos-echanges-questions.php on line 62


http://www.salemioche.net/script-php-1.php


Message édité par azerty74 le 15-06-2007 à 08:33:15
Je me la pête
Profil : /!\ Docteur - PDG
Plus d'informations

C'est juste que tu n'as pas configurer easyphp pour qu'il sorte sur le smtp de ton hébergeur...
 
De plus, tu ne renseignes pas $destinataire ??? C'est quelle adresse email ? Tant qu'à utiliser du code tout fait, autant le recopier correctement...


---------------
.: La Pipicy Team :love: :.
Plus d'informations

lol en faite le $destinataire est un bouton déroulant avec pour name valeur et des valeur=...@hotmail.fr
 
smtp de ton serveur ????
comment je fais ca moi !!

Je me la pête
Profil : /!\ Docteur - PDG
Plus d'informations

comme ca ???
Sans doute !!
 
:)


---------------
.: La Pipicy Team :love: :.