Téléchargement
illégal
Posez votre question Signaler

Espace membres en php: envoi mail??? [Résolu]

maxime_B 851Messages postés 14 juin 2005Date d'inscription 15 juin 2010Dernière intervention - Dernière réponse le 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
Lire la suite 

Espace membres en php: envoi mail »

9 réponses
Réponse
+0
moins plus
petite question con, ton hébergeur accept la fonction mail () ???
maxime_B- 14 mars 2006 à 21:20
je pense enfin je suis pas sur, je vais aller demander à un admin (ifrance).....
Ajouter un commentaire
Réponse
+0
moins plus
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/sujet-117-php-fonction-mail
Ajouter un commentaire
Réponse
+0
moins plus
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?
Ajouter un commentaire
Réponse
+0
moins plus
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
maxime_B- 16 mars 2006 à 19:39
eh bien en fait je n'en ai pas encore mit...
Ajouter un commentaire
Réponse
+0
moins plus
$go= mail($email,$sujet,$message);
c'est quoi en fait ce $go et est-ce que j'ai vraiment besoin de headers???
Ajouter un commentaire
Réponse
+0
moins plus
je crois que les headers vont définir les reply-to ... et tout
je ne sais pas si c'est obligatoire
Ajouter un commentaire
Réponse
+0
moins plus
Ok merci et vraiment désolé pour les remerciements tardifs.^^'
Ajouter un commentaire
Ce document intitulé « espace membres en php: envoi mail??? » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?