Fonction mail php qui ne s'execute pas

Fermé
foxbib Messages postés 3 Date d'inscription vendredi 4 avril 2008 Statut Membre Dernière intervention 24 avril 2008 - 24 avril 2008 à 18:53
foxbib Messages postés 3 Date d'inscription vendredi 4 avril 2008 Statut Membre Dernière intervention 24 avril 2008 - 24 avril 2008 à 19:31
Bonjour,

J'ai créer un page pour une inscription sur mon site , lors de l'inscription , un simple mail de confirmation est envoyé a l'utilisateur , sauf que mon problème , c'est que l'utilisateur ne reçois rien .
Je vous met mon code si vous pouviez m'aider.
<?php
// start session

if ($_SESSION['auth'] == 1) {     
header("Location: content.php");
}
else
{
     
     
 // Formulaire visible par défaut
     $masquer_formulaire = false;
     
     // Une fois le formulaire envoyé
     if(isset($_POST["BT_Envoyer"]))
     {
          
          // Vérification de la validité des champs
          if(!ereg("^[A-Za-z0-9_]{4,20}$", $_POST["TB_Nom_Utilisateur"]))
          {
               $message = "Votre nom d'utilisateur doit comporter entre 4 et 20 caractères<br />\n";
               $message .= "L'utilisation de l'underscore est autorisée";
          }
          elseif(!ereg("^[A-Za-z0-9]{4,}$", $_POST["TB_Mot_de_Passe"]))
          {
               $message = "Votre mot de passe doit comporter au moins 4 caractères";
          }
          elseif($_POST["TB_Mot_de_Passe"] != $_POST["TB_Confirmation_Mot_de_Passe"])
          {
               $message = "Votre mot de passe n'a pas été correctement confirmé";
          }
          elseif(!ereg("^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]{2,}[.][a-zA-Z]{2,4}$",
               $_POST["TB_Adresse_Email"]))
          {
               $message = "Votre adresse e-mail n'est pas valide";
          }
          else
          {
               
               // Connexion à la base de données
               // Valeurs à modifier selon vos paramètres configuration
               require('configserv.inc.php');
               
               // Vérification de l'unicité du nom d'utilisateur et de l'adresse e-mail
               $result = mysql_query("
                    SELECT name
                         , mail
                    FROM users
                    WHERE name = '" . $_POST["TB_Nom_Utilisateur"] . "'
                    OR mail = '" . $_POST["TB_Adresse_Email"] . "'
               ");
               
               // Si une erreur survient
               if(!$result)
               {
                    $message = "Une erreur est survenue lors de la création de votre compte utilisateur";
               }
               else
               {
                    
                    // Si un enregistrement est trouvé
                    if(mysql_num_rows($result) > 0)
                    {
                         
                         while($row = mysql_fetch_array($result))
                         {
                              
                              if($_POST["TB_Nom_Utilisateur"] == $row["name"])
                              {
                                   $message = "Le nom d'utilisateur " . $_POST["TB_Nom_Utilisateur"];
                                   $message .= "est déjà utilisé";
                              }
                              elseif($_POST["TB_Adresse_Email"] == $row["mail"])
                              {
                                   $message = "L'adresse e-mail " . $_POST["TB_Adresse_Email"];
                                   $message .= "est déjà utilisée";
                              }
                              
                         }
                         
                    }
                    else
                    {
                         
                         // Génération de la clef d'activation
                         $caracteres = array("a", "b", "c", "d", "e", "f", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
                         $caracteres_aleatoires = array_rand($caracteres, 8);
                         $clef_activation = "";
                         
                         foreach($caracteres_aleatoires as $i)
                         {
                              $clef_activation .= $caracteres[$i];
                         }
                         
                         // Création du compte utilisateur
                         $result = mysql_query("
                              INSERT INTO users(
                                   name
                                   , pass
                                   , mail
                                   , date_inscription
                                   , actif
                              )
                              VALUES(
                                   '" . $_POST["TB_Nom_Utilisateur"] . "'
                                   , '" . sha1($_POST["TB_Mot_de_Passe"]) . "'
                                   , '" . $_POST["TB_Adresse_Email"] . "'
                                   , '" . time() . "'
                                   , '" . $clef_activation . "'
                              )
                         ");
                         
                         // Si une erreur survient
                         if(!$result)
                         {
                              $message = "Une erreur est survenue lors de la création de votre compte utilisateur";
                         }
                         else
                         {
                              
                              // Envoi du mail d'activation
                              $sujet = "Activation de votre compte utilisateur WarLife";
                              
                              $message = "Pour valider votre inscription, merci de cliquer sur le lien suivant :\n";
                              $message .= "[http://]" . $_SERVER["SERVER_NAME"];
                              $message .= "/idsess/activer-compte-utilisateur.php?id=" . mysql_insert_id();
                              $message .= "&clef=" . $clef_activation;
                              
                              
				// Si une erreur survient
                              if(!mail($_POST["TB_Adresse_Email"], $sujet, $message))
                              {
                                   $message = "Une erreur est survenue lors de l'envoi du mail d'activation<br />\n";
                                   $message .= "Veuillez contacter l'administrateur afin d'activer votre compte";
                              }
                              else
                              {
                                   
                                   // Message de confirmation
                                   $message = "Votre compte utilisateur a correctement été créer<br />\n";
                                   $message .= "Un email vient de vous être envoyer afin de l'activer";
                                   
                                   // On masque le formulaire
                                   $masquer_formulaire = true;
                                   
                              }
                              
                         }
                         
                    }
                    
               }
               
          }
          
          // Fermeture de la connexion à la base de données
          mysql_close();
          
     }
     
}

?>
<html>

<head>
     <title>Creation de votre espace membre WarLife</title>
</head>

<body>

<? if(isset($message)) { 

?>
<p><?= $message; ?></p>

<? } if($masquer_formulaire != true) { ?>
<center>
<form action="http://<?= $_SERVER["SERVER_NAME"] . $_SERVER["SCRIPT_NAME"]; ?>" method="post">
     <p>
          Nom d'utilisateur : <input type="text" name="TB_Nom_Utilisateur" />
     </p>
     <p>
          Mot de passe : <input type="password" name="TB_Mot_de_Passe" />
     </p>
     <p>
          Confirmation du mot de passe : <input type="password" name="TB_Confirmation_Mot_de_Passe" />
     </p>
     <p>
          Adresse e-mail : <input type="text" name="TB_Adresse_Email" />
     </p>
     <p>
          <input type="submit" name="BT_Envoyer" value="Envoyer" />
     </p>
</form>
</center>
<? } ?>
</body>
</html>


J'ai comme message a la fin de mon inscription :
"Votre compte utilisateur a correctement été créer
Un email vient de vous être envoyer afin de l'activer"
Pourtant aucun mail dans ma boite test ...

J'ai mis en gras la partie envoie du mail , je ne vois pas d'où vient l'erreur
Merci de votre lecture
En attente de vos réponse
foxbib
A voir également:

1 réponse

foxbib Messages postés 3 Date d'inscription vendredi 4 avril 2008 Statut Membre Dernière intervention 24 avril 2008
24 avril 2008 à 19:04
je vien de testé ce petit fichier mais toujours pas de mail .
Pour information , mon hébergeur est free !
<html>
<body>
<?php
$destinataire = "****@hotmail.com";
echo "Ce script envoie un mail à $destinataire";
mail($destinataire, "test email 1", "merci pour ton tutorial");
?>
</body>
</html>


Merci pour votre aide
0
foxbib Messages postés 3 Date d'inscription vendredi 4 avril 2008 Statut Membre Dernière intervention 24 avril 2008
24 avril 2008 à 19:31
bon j'ai refait quelques test , et je viens de voir
que j'ai réussi a envoyé mon mail de confirmation sur une boite mail Voila.fr
Donc le problème viendrait d'hotmail qui bloquerai les mails.

Avez vous une solution ?
0