PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 03-06-2010 13:41:25

adnagi
Membre
Inscription : 03-06-2010
Messages : 10

PHP insertion code pour validation de syntaxe Mail

Vraiment Desolé ,j espère que cette fois ci le Post correspond au critere du site !
derniere essai smile


Bonjour,

Je debute en php, j ai reussi a inserer voir creer du script php sans trop de probleme,
mais la j en ai un vrai !
je cherche a valider la syntaxe d une adresse mail lors de l insertion,mais les messages d erreurs fuses !!!
pouvez vous m aider?
Merci d avance ,voici mon code.





<?php
...
// on teste si le visiteur a soumis le formulaire  
if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') {  
   // on teste l'existence de nos variables. On teste également si elles ne sont pas vides  
       if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))) {  
      // on teste les deux mots de passe  
      if ($_POST['pass'] != $_POST['pass_confirm']) {  
         $erreur = 'Les 2 mots de passe sont différents.';  
         if(isset($_POST['email'])){
         $erreurM ='email incorect';
        $email = stripslashes(htmlentities($_POST['email']));
        if(preg_match('#^(([a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+\.?)*[a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+)@(([a-z0-9-_]+\.?)*[a-z0-9-_]+)\.[a-z]{2,}$#i',str_replace('&','&',$email)))
      {                
         // on recherche si ce login est déjà utilisé par un autre membrestp  
         $sql = 'SELECT count(*) FROM membrestp WHERE login="'.mysql_escape_string($_POST['login']).'"';  
         $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());  
         $data = mysql_fetch_array($req);  

         if ($data[0] == 0) {  
            $sql = 'INSERT INTO membrestp VALUES("",
            "'
.mysql_escape_string($_POST['login']).'",
            "'
.mysql_escape_string($_POST['sex']).'",
            "'
.mysql_escape_string($_POST['tendance']).'",
            "'
.mysql_escape_string($_POST['autretendance']).'",            
            "'
.mysql_escape_string($_POST['ville']).'",
            "'
.mysql_escape_string(md5($_POST['pass'])).'",
            "'
.mysql_escape_string($_POST['email']).'")';  
            mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());  

            session_start();  
            $_SESSION['login'] = $_POST['login'];  
            $_SESSION['ville'] = $_POST['ville'];
             print("<script language=\"javascript\" type=\"text/javascript\">window.location.replace(\"membrestp.php\" );</script>" );
            exit();  
         }  
         else {  
            $erreur = 'Un membre possède déjà ce login.';  
         }  
      }  
   }  
   else {  
      $erreur = 'Au moins un des champs est vide.';  
   }  
}  

echo '<span style="color:#00aa00;">L\'email <strong>'.$email.'</strong> est valide.</span>';
        }
        else{
                echo '<span style="color:#ff0000;">L\'email <strong>'.$email.'</strong> est invalide.</span>';
        }
}
else
{
        $email = '';
        echo 'Veuillez entrer l\'email à vérifier.';
}


echo '<br />';
?>
...
 

Pour le HTML

<FORM ID="reguser" action="index.php" method="post">

       <tr valign="baseline">
          <td nowrap="nowrap" align="right">Email:</td>
          <td><input type="text" name="email" value="" size="50" name="email"  />

Hors ligne

#2 03-06-2010 13:48:36

Alnoss
Modérateur absent
Lieu : 06 - PACA
Inscription : 11-05-2009
Messages : 541
Site Web

Re : PHP insertion code pour validation de syntaxe Mail

HHaaaaaaa !!! Enfin, c'est concis et "agréable" à lire.....

Bon, maintenant, donnes un peu plus de précision sur les erreurs que tu as !!!


MERCI de lire le mode d'emploi avant de poster !!

Hors ligne

#3 03-06-2010 13:53:59

adnagi
Membre
Inscription : 03-06-2010
Messages : 10

Re : PHP insertion code pour validation de syntaxe Mail

Merci a vous
En fait j essaye d incorporer ce code au mien


<?php
if(isset($_POST['email'])
{
       
        $email = htmlentities($_POST['email']);
        if(preg_match('#^(([a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+\.?)*[a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+)@(([a-z0-9-_]+\.?)*[a-z0-9-_]+)\.[a-z]{2,}$#i',str_replace('&','&',$email)))
        {
             
                    echo "<strong style=\"color:#ff0000;\">L'email que vous avez entré est invalide.</strong>";
        }
}
else
{
?>
<form action="" method="post">
    <input type="text" name="email" id="email" /><br />
    <input type="text" name="sujet" id="sujet" /><br />
    <input type="submit" value="Envoyer" />
</form>
<?php
}
?>
 

je rencontre des difficultés a positionner le code après validation du post
pouvez vous m aider ?

Hors ligne

#4 03-06-2010 13:56:27

Alnoss
Modérateur absent
Lieu : 06 - PACA
Inscription : 11-05-2009
Messages : 541
Site Web

Re : PHP insertion code pour validation de syntaxe Mail

Ok !!

Alors pour commencer, ton <form>....</form> doit se placer AVANT le code php de traitement
De plus, dans "action", il doit y avoir l'adresse de la page qui va traiter les données envoyées par le form...
Si tu fais pointer l'action vers la même page, tu dois quand même mettre l'adresse de cette page

P.S : pour éviter de vilaines lignes telles que :

echo "<strong style=\"color:#ff0000;\">L'email que vous avez entré est invalide.</strong>";

Prends pour habitude de faire des echo ' blabla bla'; et non echo "blabla bla"; ainsi tu auras plus simplement

echo '<strong style="color:#ff0000">L\'email que vous avez entré est invalide.</strong>';

Et encore,  je passe sur le CSS pour rester simple.. mais faudrait que tu t'y mettes wink


MERCI de lire le mode d'emploi avant de poster !!

Hors ligne

#5 03-06-2010 16:30:13

adnagi
Membre
Inscription : 03-06-2010
Messages : 10

Re : PHP insertion code pour validation de syntaxe Mail

je vais essayer l inversion de code
merci

Hors ligne

Pied de page des forums