PHP confirmation d'inscription par mail

Résolu/Fermé
greg - 30 janv. 2013 à 21:38
 greg - 1 févr. 2013 à 16:28
Bonjour,

alors voila mon problème: je souhaite créer un système d'inscription + confirmation par mail.
j'envoie donc par mail une clé (qui a été sauvegardé avant dans la base de donnée) et le pseudo de la personne pour retrouver la clé par la suite.
mon principe: avec le pseudo je retrouve la clé que je compare à celle enregistrée dans le mail.
sauf que ma requête ne semble pas recevoir le pseudo enregistré dans le mail... (confirmation après test que le problème vient de la)

voila mon code:

inscription

  $destinataire = $email;
$sujet = "blabla" ;
$entete = "blabla" ;
  
  $message = '

http://monsite/activation.php?login='.urlencode($login).'&cle='.urlencode($cle).'

blabla';


mail($destinataire, $sujet, $message, $entete) ;


la réception du mail marche.

activation:

$login = $_GET['login'];
$cle = $_GET['cle'];
		
	

  $sql = "SELECT cle, actif FROM Utilisateur WHERE pseudo='$login' ";
$data=mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 

$clebdd= $data['cle'];
$actif= $data['actif'];


et à partir de la je ne récupère toujours pas les valeurs de data 'actif' et data 'clé'


si quelqu'un a une idée sur le problème... je le remercierai beaucoup!
A voir également:

3 réponses

JooS Messages postés 2465 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
Modifié par JooS le 31/01/2013 à 22:40
Salut,
Moi j'aurais utiliser l'id au lieu du pseudo de l'utilisateur.

Sinon, t'as penser a urldecode() ?!

Si t'utilise le pseudo malgré tout, alors je te conseille d'interdire les caractères spéciaux (espaces, caractères non alphabétique, ... )

Mettez en résolu quand c'est résolu -.- ...
0
Profil bloqué
31 janv. 2013 à 23:12
ton probleme vient de la partie SQL il manque le fetch_array

remplace
$sql = "SELECT cle, actif FROM Utilisateur WHERE pseudo='$login' ";
$data=mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

par

$sql = "SELECT cle, actif FROM Utilisateur WHERE pseudo='$login' ";
$data1=mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$data = mysql_fetch_array($data1);

aussi je suis d'accord avec Joos mieux vaut remplacer pseudo par un id au mois ca marchera à tous les coups

a+
0
JooS Messages postés 2465 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
31 janv. 2013 à 23:50
Ah oui, bien vu.
0
tout marche très bien. merci de votre réponse et conseil! erreur stupide...
0