Validation par email

Fermé
nasbe Messages postés 30 Date d'inscription mardi 11 septembre 2007 Statut Membre Dernière intervention 11 juin 2008 - 10 juin 2008 à 10:49
absurdsystem Messages postés 117 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 28 août 2008 - 10 juin 2008 à 11:12
Bonjour,

Je cherche a faire une validation par email pour les utilisateurs puissent devenir membre. J'ai passablement de petit problème, notamment au niveau de la fonction mail, elle l'accepte pas comme je l'ai écrit. Si quelqu'un pouvait m'aider?



<?
if(isset($pseudo))
{
if(isset($newsl))
	$news=1;
else
	$news=0;
	
$chaine = "abcdefghijklmnopqrstuvwxyz0123456789";
$Validation = str_shuffle($chaine);

$message = 'Cher '.$pseudo.',';
$message .= 'Ceci est un mail automatique de confirmation d\'inscription au site de l\'Escobar';
$message .= 'Pour confirmer et ainsi terminer l\'inscription à votre compte, veuillez cliquer sur le lien de confirmation: ';
$message .= 'http://127.0.0.1/escobar/index.php?page=valid.php?pseudo='.str_replace(' ','%20',$pseudo);	
	
$RequeteInsertionPersonne = "INSERT INTO personne VALUES('',
														'".addslashes($nom)."',
														'".addslashes($prenom)."',
														'".addslashes($pseudo)."',
														'".addslashes($passe)."',
														'".addslashes($tel)."',
														'".addslashes($mail)."',
														'$news',
														'$Validation')"; 

														
$result = mysql_query($RequeteInsertionPersonne);
if($result)
	mail($mail,'Confirmation d\'inscription au site de l\'Escobar',$message);
	echo "Bravo, ton inscription a été validée";
else
	echo "une erreur est survenue, merci de réessayer plus tard.";
}
else
{
?>

<h3>Bienvenue sur la page d'inscription de l'Esco-Bar</h3>
<br><br>
<form name="inscription" action= "javascript:verifChamps();"; enctype="application/x-www-form-urlencoded" method="post">
		<fieldset>
			<legend><b>Création du compte</b></legend>
				<table>
				<tr></tr>
				<tr>
					<td>Nom : </td>
					<td><input type="text" size="30" name="nom"></td>
				</tr>
				<tr>
					<td>Prenom : </td>
					<td><input type="text" size="30" name="prenom"></td>
				</tr>
				<tr>
					<td>Pseudo : *</td>
					<td><input id="pseudo" type="text" size="30" name="pseudo"></td>					
				</tr>
				<tr>
					<td>Mot de passe : *</td>
					<td><input id="pass" type="password" size="30" name="passe"></td>					
				</tr>
				<tr>
					<td>Telephone :</td>
					<td><input type="text" size="30" name="tel"></td>
				</tr>
				<tr>
					<td>Email : *</td>
					<td><input type="text" id="mail" size="30" name="mail"></td>
				</tr>
				<tr>
					<td>M'inscrire à la newsletter :</td>
					<td><input name="newsl" type="checkbox"></td>
				</tr>
				<tr>
					<td></td>
					<td><input type="submit" value="m'inscrire"></td>
				</tr>
				</table>
				<br></br>
				<small>Les champs marqués d'un * sont obligatoires.</small>		
		</fieldset>
</form>

<?
}
?>

Et voici ma page validation


<? 
include 'variables.inc.php';

// Connexion à la base de donnée
	$mysql_connect=mysql_connect($hostddb,$loginddb,$passddb);
	mysql_select_db($baseddb, $mysql_connect);
	
	$RequeteModifValid = mysql_query("UPDATE personne SET Validation ='1' WHERE pseudo ='$_GET[pseudo]'") or die ('erreur : '.mysql_error());
	echo 'Votre compte est validé, cliquez <a href="bienvenu.php">ici</a> pour vous connecter<br>';
?>

1 réponse

absurdsystem Messages postés 117 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 28 août 2008 50
10 juin 2008 à 11:12
Slt !

J'ai deja fait ça mais d'une maniere differente.


En fait dans ma base j'ai un champ "validation" et un autre "clé"

Quand l'utilisateur s'inscrit, le champ validation est mi a 0 et je genere la clé en faisant un md5 aleatoire, cela te donnera une clé unique.

par exemple $key=md5(rand());

que je rentre ensuite dans la base.


Ensuite j'envoie un mail de ce type :

$message .= 'Ceci est un mail automatique de confirmation d\'inscription <br />';
$message .= 'Pour confirmer et ainsi terminer l\'inscription à votre compte, veuillez cliquer sur le lien de confirmation: <br /><br />';
$message .= "<a href=\"url/confirm.php?log=$log&key=$key\">Valider son inscription</a>";

$log correspond au login et $key a la clé.


Donc le lien pointe vers la page confirm.php

tu n'a plus qu'a faire ceci :

$log=$_GET['log'];
$key=@$_GET['key'];

include("_database_connexion.php");

$q=mysql_query("SELECT * FROM users WHERE userkey = '$key'");
$n=mysql_num_rows($q);
if($n==1) {
$valid=mysql_query("UPDATE users SET uservalid = 1 WHERE userkey = '$key'") or die("probleme de validation");
}
0