mail confirmation

Eléphant du PHP | 124 Messages

30 avr. 2006, 11:02

bonjour a tous
j'ai script pour enregistrement de menbre seulement voila la fonction de confirmation par mail n'a pas l'air de fonctionné ,pourtant ça me donne pas d'erreur quand je fait des essai mais ne reçois pas le mail

je post la fonction si qlq1 peut m'aider

merci
<?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>

Mammouth du PHP | 19672 Messages

30 avr. 2006, 13:26

Si tu essayes en local, as-tu bien configuré l'adresse du serveur SMTP dans ton php.ini ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 124 Messages

30 avr. 2006, 17:58

bjr
non pas en local , directement cher l'hebergeur
en cherchan sur le net j'ai apris que certain hebergeur n'autorisé pas la fonction mail , est ce vrai , moi suis sur ifrance le temp de finir mon site car j'ai pas mal de boulot pour le créer
merci

Eléphant du PHP | 424 Messages

30 avr. 2006, 18:02

Oui chez Ifrance la fonction mail est desactivé !
Youpi Youpi Yo !

Eléphant du PHP | 493 Messages

30 avr. 2006, 19:36

Rien à voir, juste un peu d'optimisation :)
$_POST = array_map( 'htmlentities', $_POST );

$pseudo = $_POST['pseudo']; //On recupère les infos
$mdp = $_POST['mdp'];
$verif_mdp ...