Espace membres en php: envoi mail???

Résolu/Fermé
maxime_B Messages postés 788 Date d'inscription mardi 14 juin 2005 Statut Membre Dernière intervention 15 juin 2010 - 13 mars 2006 à 21:54
maxime_B Messages postés 788 Date d'inscription mardi 14 juin 2005 Statut Membre Dernière intervention 15 juin 2010 - 13 oct. 2009 à 17:11
bonsoir
j'ai un petit problème concernant un espace membres.
voilà, le, en fait c'est censé envoyer un mail de confirmation, mais ça ne le fait pas. On s'inscrit bien, mais on ne recoit pas d'e-mail voila le code si c'est plus clair comme ça :
<?php
//Identifiants de connexion à la base de données.
require("config.inc.php");

//On vérifie que la variable $_POST['inscription'] existe
if (isset($_POST['inscription'])) 
{
        //Si les variables contenant le pseudo, le mot de passe et l'email existent et contiennent quelque chose.
        if (isset($_POST['pseudo'], $_POST['mot_passe'], $_POST['email']) && !empty($_POST['pseudo']) && !empty($_POST['mot_passe']) && !empty($_POST['email']))
        {
                //Si le pseudo est supérieur à 3 caractères et inférieur à 35 caractères.
                if (strlen(trim($_POST['pseudo'])) > 3 && strlen(trim($_POST['pseudo'])) < 35) 
                {
                        //Si le mot de passe est supérieur à 4 caractères.
                        if (strlen(trim($_POST['mot_passe'])) > 4)
                        {
                                //Mesure de sécurité.
                                $pseudo = htmlentities(addslashes($_POST['pseudo']));
                                $mot_passe = htmlentities(addslashes($_POST['mot_passe']));
                                $email = htmlentities(addslashes($_POST['email']));
                                
                                //Hashage du mot de passe avec md5().
                                $mot_passe = md5($mot_passe);
                                
                                //Envoi du mail de confirmation.
                                $message = '
                                Bonjour '.$pseudo.'\n\n
                                Vous venez de vous inscrire sur "nom_du_site" et pour valider votre inscription, vous devez cliquer sur le lien suivant : <a href="http://adresse_du_site.com/confirmation.php?pseudo='.$pseudo.'">http://adresse_du_site.com/confirmation.php?pseudo='.$pseudo.'</a>
                                ';
                                
                                //Si le mail a été envoyé on peut enregistrer le membre
                                if (mail($email, 'Confirmation de l\'inscription sur [Nom_du_site]', $message))
                                {
                                        //Connexion à mysql.
                                        mysql_connect($host,$username,$password);
                                        mysql_select_db($bdd_name);
                                        
                                        //On éxécute la requête qui enregistre un nouveau membre.
                                        mysql_query("INSERT INTO membres (id, pseudo, mot_passe, confirmation, email) VALUES ('', '".$pseudo."', '".$mot_passe."', '0', '".$email."')");
                                        
                                        //Déconnection de mysql.
                                        mysql_close();
                                }
                                else
                                {
                                        echo 'Erreur : echec lors de l\'envoi du mail ! veuillez vous ré-inscrire';
                                }
                        }
                        else
                        {
                                echo 'Erreur : le mot de passe est trop court !';
                        }
                }
                else
                {
                        echo 'Erreur : le pseudo est soit trop court, soit trop long !';
                }
        }
        else
        {
                echo 'Erreur : vous avez oublié d\'entrer votre pseudo ou votre mot de passe ou votre adresse email !';
        }
}
?>

merci d'avance pour votre aide

7 réponses

P@ Messages postés 1709 Date d'inscription vendredi 7 juillet 2000 Statut Membre Dernière intervention 24 mars 2009 185
14 mars 2006 à 14:46
petite question con, ton hébergeur accept la fonction mail () ???
0
maxime_B Messages postés 788 Date d'inscription mardi 14 juin 2005 Statut Membre Dernière intervention 15 juin 2010 55
14 mars 2006 à 21:20
je pense enfin je suis pas sur, je vais aller demander à un admin (ifrance).....
0
P@ Messages postés 1709 Date d'inscription vendredi 7 juillet 2000 Statut Membre Dernière intervention 24 mars 2009 185
15 mars 2006 à 11:07
par ailleurs, j'ai pas l'impression que ton script envoie de mail
if (mail($email, 'Confirmation de l\'inscription sur [Nom_du_site]', $message))
                                {
                                        //Connexion à mysql.
                                        mysql_connect($host,$username,$password);
                                        mysql_select_db($bdd_name);
                                        
                                        //On éxécute la requête qui enregistre un nouveau membre.
                                        mysql_query("INSERT INTO membres (id, pseudo, mot_passe, confirmation, email) VALUES ('', '".$pseudo."', '".$mot_passe."', '0', '".$email."')");
                                        
                                        //Déconnection de mysql.
                                        mysql_close();
                                }

ca ca n'envoie pas de mail.
Pour envoyer un mail il faut au moins
mail($adresse,$titre,$message,$headers);

avec
$adressse l'adresse du destinataire du mail;
$titre le titre du mail
$message le corps du mail
$headers des headers optionnels
voire http://www.commentcamarche.net/faq/117-php-fonction-mail
0
maxime_B Messages postés 788 Date d'inscription mardi 14 juin 2005 Statut Membre Dernière intervention 15 juin 2010 55
15 mars 2006 à 15:26
bon normalement j'ai rajouté la fonction mail et je reprends mon ancien hebergeur (le seul qui accepte la fonction mail())
voilà :
                                //Envoi du mail de confirmation.
                                mail($email,'Inscription au site de X',
								$message = '
                                Bonjour '.$pseudo.'\n\n
                                Vous venez de vous inscrire sur le site de X et pour valider votre inscription, vous devez cliquer sur le lien suivant : <a href="http://adresse_du_site.com/confirmation.php?pseudo='.$pseudo.'">http://adresse_du_site.com/confirmation.php?pseudo='.$pseudo.'</a>
                                ';
                                )
                                //Si le mail a été envoyé on peut enregistrer le membre
                                if (mail($email, 'Confirmation de l\'inscription sur [Nom_du_site]', $message))
                                {
                                        //Connexion à mysql.
                                        mysql_connect($host,$username,$password);
                                        mysql_select_db($bdd_name);
                                        
                                        //On éxécute la requête qui enregistre un nouveau membre.
                                        mysql_query("INSERT INTO membres (id, pseudo, mot_passe, confirmation, email) VALUES ('', '".$pseudo."', '".$mot_passe."', '0', '".$email."')");
                                        
                                        //Déconnection de mysql.
                                        mysql_close();
                                }

le code est bon ou ça n'enverrai pas de mail à ton avis?
0
P@ Messages postés 1709 Date d'inscription vendredi 7 juillet 2000 Statut Membre Dernière intervention 24 mars 2009 185
15 mars 2006 à 15:39
pour
mail($email,'Inscription au site de X',$message = 'Bonjour '.$pseudo.'\n\nVous venez de vous inscrire sur le site de X et pour valider votre inscription, vous devez cliquer sur le lien suivant : <a href="http://adresse_du_site.com/confirmation.php?pseudo='.$pseudo.'">http://adresse_du_site.com/confirmation.php?pseudo='.$pseudo.'</a>';
)

je ferait
$message='Bonjour '.$pseudo.'\n\nVous venez de vous inscrire sur le site de X et pour valider votre inscription, vous devez cliquer sur le lien suivant : <a href="http://adresse_du_site.com/confirmation.php?pseudo='.$pseudo.'">http://adresse_du_site.com/confirmation.php?pseudo='.$pseudo.'</a>';
$sujet='Inscription au site de X';
$go= mail($email,$sujet,$message);

Je suppose que tes paramétres pour les headers sont définit ailleurs ...
Bon courage
0
maxime_B Messages postés 788 Date d'inscription mardi 14 juin 2005 Statut Membre Dernière intervention 15 juin 2010 55
16 mars 2006 à 19:39
eh bien en fait je n'en ai pas encore mit...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
maxime_B Messages postés 788 Date d'inscription mardi 14 juin 2005 Statut Membre Dernière intervention 15 juin 2010 55
19 mars 2006 à 17:17
$go= mail($email,$sujet,$message);
c'est quoi en fait ce $go et est-ce que j'ai vraiment besoin de headers???
0
P@ Messages postés 1709 Date d'inscription vendredi 7 juillet 2000 Statut Membre Dernière intervention 24 mars 2009 185
21 mars 2006 à 10:24
je crois que les headers vont définir les reply-to ... et tout
je ne sais pas si c'est obligatoire
0
maxime_B Messages postés 788 Date d'inscription mardi 14 juin 2005 Statut Membre Dernière intervention 15 juin 2010 55
13 oct. 2009 à 17:11
Ok merci et vraiment désolé pour les remerciements tardifs.^^'
0