Problème de mail d'activation Posté le 8/11/2006 à 11:13
BesMembre![bes]()
25 posts
Inscrit le : 29/09/2006
voila en m'aidant d'une source j'ai crée un espace membre avec confirmation d'inscription par mail d'activation mais le mail n'arrive jamais je vous donne mon code
[quote]
<?php
//Identifiants de connexion à la base de données.
require("config.php");
//Connexion à la base de données.
mysql_connect($host,$username,$password);
mysql_select_db($bdd_name);
//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'])) > 2 && 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 = htmlspecialchars($_POST['pseudo']);
$mot_passe = htmlspecialchars($_POST['mot_passe']);
$email = htmlspecialchars($_POST['email']);
//On vérifie que le pseudo n'existe pas.
$sql = mysql_query("SELECT COUNT(*) AS nb_pseudo FROM membres WHERE pseudo='".$pseudo."'");
if (mysql_result($sql, 0, 'nb_pseudo') == 0)
{
//Hashage du mot de passe avec md5().
$mot_passe = md5($mot_passe);
//Génération du code de confirmation.
$lettres_chiffres = 'abcdefghijklmnopqrstuvwxyz0123456789';
$lettres_chiffres_melanges = str_shuffle($lettres_chiffres);
$code_confirmation = substr($lettres_chiffres_melanges, 1, 10);
//Envoi du mail de confirmation.
$message = '
Bonjour '.$pseudo.'<br />
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?code='.$code_confirmation.'&pseudo='.$pseudo.'">http://adresse_du_site.com/confirmation.php?code='.$code_confirmation.'&pseudo='.$pseudo.'</a>
';
//Si le mail a été envoyé on peut enregistrer le membre
if (mail($email, 'Confirmation de l\'inscription sur [mantarou-fansub]', $message))
{
//On éxécute la requête qui enregistre un nouveau membre.
mysql_query("INSERT INTO membres (pseudo, mot_passe, confirmation, email, confirmation_code) VALUES ('".$pseudo."', '".$mot_passe."', '0', '".$email."', '".$code_confirmation."')");
echo 'Message : votre compte a bien été créé ! Un e-mail vient de vous être envoyé contenant un lien de confirmation de votre inscription.';
}
else
{
echo 'Erreur : echec lors de l\'envoi du mail ! veuillez vous ré-inscrire';
}
}
else
echo 'Erreur : le pseudo existe déjà !';
}
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 !';
}
//Déconnection de la base de données.
mysql_close();
?>
merci d'avance car la je suis bloqué
Réponse à : Problème de mail d'activation Posté le 8/11/2006 à 11:36
3run0Administrateur
1766 posts
Inscrit le : 1/10/2004
Salut,
[b] ... //Si le mail a été envoyé on peut enregistrer le membre
if (mail($email, 'Confirmation de l'inscription sur [mantarou-fansub]', $message))
{ ... [/b]
tu est sur de ton coup là?
<?
mail($emailaddress , $emailsubject, $msg, [$headers facultatif]);
?>
Attention que ta fonction mail() ne serve pas de base de spam, toutes les $variables => $emailaddress $emailsubject $headers doivent être controlées
<?
if(eregi("\r",$variables) || eregi("\n",$variables)){die("Spam ?? :(");}
?>
_______________________
_ww.gabian-herault.com
Réponse à : Problème de mail d'activation Posté le 8/11/2006 à 13:19
besMembre
25 posts
Inscrit le : 29/09/2006
étant débutant je ne vois pas du tout ou metre les codes que tu ma donné mais je vais essayé quand meme merci réponse rapide ca fait plaisir
_______________________
Aucun
Réponse à : Problème de mail d'activation Posté le 8/11/2006 à 13:52
3run0Administrateur
1766 posts
Inscrit le : 1/10/2004
<?
//Mesure de sécurité.
$pseudo = htmlspecialchars($_POST['pseudo']);
$mot_passe = htmlspecialchars($_POST['mot_passe']);
$email = htmlspecialchars($_POST['email']);
if(eregi("\r",$email) || eregi("\n",$email)){
die("tentative de Spam ?? :(");
}
?>
sinon ton code à l'air clean.
Est-ce que tu a vérifier si la fonction mail() est activée chez ton hebergeur?
pour verifier tu colle ta fonction dans un fichier.php, tu l'ouvre 1 fois et tu va voir dans ta boite
<?
print 'envoie mail de test';
mail('mon_adresse@mail.com','test mail','yes ça marche');
?>
_______________________
_ww.gabian-herault.com
Réponse à : Problème de mail d'activation Posté le 8/11/2006 à 15:09
besMembre
25 posts
Inscrit le : 29/09/2006
ca marche toujours pas a ce qu'il parait c'est de la faute de lherbergeur qui bloc la fonction mail de php tu crois que c'est ca mon hébergeur est ifrance
_______________________
Aucun
Réponse à : Problème de mail d'activation Posté le 8/11/2006 à 17:19
3run0Administrateur
1766 posts
Inscrit le : 1/10/2004
la fonction mail() n'est pas activée sur les hebergements gratuits de IFRANCE =>
lien
va faire un tour du coté de ovh.net si mais souvenir sont bon, ils proposent une solution (form2mail) pour les gens dans ton cas.
_______________________
_ww.gabian-herault.com
Réponse à : Problème de mail d'activation Posté le 8/11/2006 à 19:45
besMembre
25 posts
Inscrit le : 29/09/2006
alor j'ai changer d'hébergeur et j'ai carrément remanié le code avec une autre source le mail arrive ce coup ci mais la clef d'activation ammene a une page introuvable
le code [quote]<?php
session_start(); //On demarre une session parce que j'ai envi ^^
require("conf.php3"); //On insert le fichier qui contient les informations
$mail = htmlentities($_POST['mail']);
if (preg_match("!^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$!", $mail)) //Verifie que l'email entrée n'est pas une fausse.
{
$chaine = "abcdefghijklmnopqrstuvwxyz0123456789";
$confirm = str_shuffle($chaine); //On créé le code de confirmation
$pseudo = htmlentities($_POST['pseudo']); //On recupère les infos
$mdp = htmlentities($_POST['mdp']);
$verif_mdp = htmlentities($_POST['verif_mdp']);
$nom = htmlentities($_POST['nom']);
$prenom = htmlentities($_POST['prenom']);
$website = htmlentities($_POST['website']);
$pays = htmlentities($_POST['pays']);
$born = htmlentities($_POST['born']);
/*On Fait la variable contenant le mail de confirmation*/
$message1 = '<html><body>Bonjour ' . $pseudo . ' et bienvenue sur ' .$nom_site. '.</br>';
$message1 .= '</br>';
$message1 .= 'Vous venez de vous inscrire et nous sommes heureux<br>de pouvoir vous compter aujourd\'hui parmi nos membres.<br>';
$message1 .= 'Voici un rappel de vos identifiants, notez les précieusement : <br>';
$message1 .= 'Votre Pseudo :' . $pseudo .'.<br>';
$message1 .= 'Votre Mot de passe:' . $mdp .'.<br><br>';
$message1 .= 'Votre Mail:' . $mail .'.<br><br>';
$message1 .= 'Votre Nom:' . $nom .'.<br><br>';
$message1 .= 'Votre Prenom:' . $prenom .'.<br><br>';
$message1 .= 'Votre Pays:' . $pays .'.<br><br>';
$message1 .= 'Votre Site Web' . $website .'.<br><br>';
$message1 .= 'Votre Date de naissance:' . $born .'.<br><br>';
$message1 .= 'Si vous souhaitez changer vos informations, rendez-vous dans votre compte pour les mettre à jour.<br>';
$message1 .= 'Votre Clé d\'activation:<br>';
$message1 .= '' .$url_script. '/confirm.php?login=' . str_replace(' ','%20',$pseudo) . '&confirm=' . $confirm . '<br><br>';
$message1 .= 'A très bientôt sur le site!<br>L\'équipe de ' .$nom_site. '.<br><a href="' .$url_site. '">' .$nom_site. '</a>';
$sql = connect_sql(); //On se connecte à MySQL
$verification = mysql_query("SELECT COUNT(*) FROM pdf_membre WHERE pseudo='$pseudo' OR mail='$mail'") or die (mysql_error());
$donnees = mysql_fetch_array($verification)or die (mysql_error());
if($donnees['COUNT(*)'] >= 1) //On verifie que le pseudo n'existe pas déjà
{
$reponse = 'Le pseudo ou l\'email est déjà utilisé, merci d\'en choisir un(e) autre. <a href="javascript:history.back(1)">Retour au formulaire</a>';
}
else
{
if( empty($pseudo) || empty($mdp) || empty($verif_mdp) || empty($mail) || empty($nom) || empty($prenom) || empty($born)) //On verifie que les variables précédentes ne soient pas vide
{
$reponse = 'Un ou plusieurs champs ne sont pas remplis, <a href="javascript:history.back(1)">Retour au formulaire</a>';
}
elseif( $mdp != $verif_mdp) //On verifie que les 2 pass sont identiques
{
$reponse = 'Les mots de passe ne sont pas identiques, <a href="javascript:history.back(1)">Retour au formulaire</a>';
}
else //Si tout est bon on entre les données dans la BDD et on envoye le mail
{
mysql_query("INSERT INTO pdf_membre VALUES ('','$pseudo', '$mdp', '$mail', '$confirm', '$nom', '$prenom', '$pays', '$born', '$website')");
$reponse = 'Bravo, vous êtes maintenant inscrit sur ' .$nom_site. '. <br>Vous allez recevoir un e-mail pour activer votre compte. <br><a href="' .$url_site. '">Retour à
l\'Accueil</a>';
$entete = "MIME-Version: 1.0\r\n";
$entete .= "Content-type: text/html; charset=iso-8859-1\r\n";
$entete .= "From: <$email_admin>\r\n";
$entete .= "Reply-To: $email_admin\r\n";
mail($mail,'Bienvenue sur ' .$nom_site. ' ' . $login .'.' , $message1, $entete);
}
}
mysql_close($sql); //On se deconnecte
}
else //Reponse si l'adresse e-mail est une fausse
{
$reponse = 'Votre adresse e-mail "' . $mail . '" n\'est pas correcte. <a href="javascript:history.back(1)">Retour au formulaire</a>';
}
?>
<html>
<body>
<? echo $reponse; ?> <!-- On affiche la reponse de tout le code du dessus -->
</body>
</html>[/quote]
merci :) je vais y arrivé a force je cherche de mon coté
_______________________
Aucun
Réponse à : Problème de mail d'activation Posté le 8/11/2006 à 20:22
3run0Administrateur
1766 posts
Inscrit le : 1/10/2004
la clef d'activation ammene a une page introuvable
un peu vague...
à quelle url t'amène ton lien et où voudrais tu qu'il t'amène?
_______________________
_ww.gabian-herault.com
Réponse à : Problème de mail d'activation Posté le 8/11/2006 à 22:35
besMembre
25 posts
Inscrit le : 29/09/2006
Réponse à : Problème de mail d'activation Posté le 8/11/2006 à 23:18
3run0Administrateur
1766 posts
Inscrit le : 1/10/2004
ben quand je clic sur le lien ça me dit "votre compte a bien etait créé" :)
si c'est pas le cas c'est qu'il y a une erreur dans ta page confirm.php et ça devrait renvoyer un message négatif.
_ verifie que la clé correspond bien à celle contenu dans la base de donnée (vu ton code normalement c'est ok).
_ ta clé compte 36 caractère, vérifie que le champ correspondant puisse bien en contenir 36 sinon il te manquera les derniers
_ verifie le test dans confirm.php et le traitement aprés ce test
_______________________
_ww.gabian-herault.com
Réponse à : Problème de mail d'activation Posté le 12/05/2007 à 20:40
js company
Visiteur
svp aider moi je cherche un plan complet pour creer une boite email personel avec php.
_______________________
Réponse à : Problème de mail d'activation Posté le 12/05/2007 à 21:59
des scripts tout fait y'a des sites qui recensent cela une recherche simple sur google t'en donnera a la pelle
en fait tu veux quoi ? envoyer des mails depuis ton site ?
avoir une adresse mail particulière ?
_______________________
c'est déjà assez triste de n'avoir rien à dire !!!
Si en plus il fallait se taire.....
Vous n'est pas connecté en temps que membre, parceque j'en ai marre du spam, SEUL les membres peuvent poster des messages sur le forum.