Afficher données précises d'une base de données
iTechapp
Messages postés
43
Statut
Membre
-
iTechapp Messages postés 43 Statut Membre -
iTechapp Messages postés 43 Statut Membre -
Bonjour,
J'aimerais afficher le mot de passe dans un mail envoyé à un utilisateur.
En gros: dans un formulaire, une personne indique son adresse email et son nom d'utilisateur, et je voudrais récupérer les infos associées à cet utilisateur, en particulier son mot de passe, qui est ensuite envoyé par mail.
J'ai écris mon code en PHP, mais cela ne fonctionne pas..
<?php
$db = mysql_connect('**', '', '');
// on sélectionne la base
mysql_select_db('**',$db);
// on crée la requête SQL
$sql = 'SELECT password FROM users WHERE username = $username && email = $email';
$sujet = 'Bienvenue sur **** !';//Le titre de l'email
$message = "Bonjour $username !\n\nBienvenue sur *.com ! Vous pouvez dès maintenant profiter de nos services, et poser votre premier * à cette adresse: http://www.****.com/home.php\n\n Nous vous recommandons de garder cet email dans vos archives dans le cas où vous oublieriez vos identifiants. \n \n------------------------------\n Rappel de vos identifiants:\nNom d'utiisateur: $username\nMot de passe: $password\n------------------------------\n\n Besoin d'aide ? Consultez notre foire aux questions à ici: http://www.*****.com/faq/, où contactez-nous sur question@**.com. \n \nÀ très bientôt, \nAnastasia de *.com";//Le message de l'email
$destinataire = $_POST['email'];//Email de l'utilisateur
$headers = "From: \"*\"<no-reply@*.com>\n";//Email du webmaster
$headers .= "Content-Type: text/plain; charset=\"iso-8859-1\"";
mail($destinataire,$sujet,$message,$headers);
?>
Merci,
itechapp
J'aimerais afficher le mot de passe dans un mail envoyé à un utilisateur.
En gros: dans un formulaire, une personne indique son adresse email et son nom d'utilisateur, et je voudrais récupérer les infos associées à cet utilisateur, en particulier son mot de passe, qui est ensuite envoyé par mail.
J'ai écris mon code en PHP, mais cela ne fonctionne pas..
<?php
$db = mysql_connect('**', '', '');
// on sélectionne la base
mysql_select_db('**',$db);
// on crée la requête SQL
$sql = 'SELECT password FROM users WHERE username = $username && email = $email';
$sujet = 'Bienvenue sur **** !';//Le titre de l'email
$message = "Bonjour $username !\n\nBienvenue sur *.com ! Vous pouvez dès maintenant profiter de nos services, et poser votre premier * à cette adresse: http://www.****.com/home.php\n\n Nous vous recommandons de garder cet email dans vos archives dans le cas où vous oublieriez vos identifiants. \n \n------------------------------\n Rappel de vos identifiants:\nNom d'utiisateur: $username\nMot de passe: $password\n------------------------------\n\n Besoin d'aide ? Consultez notre foire aux questions à ici: http://www.*****.com/faq/, où contactez-nous sur question@**.com. \n \nÀ très bientôt, \nAnastasia de *.com";//Le message de l'email
$destinataire = $_POST['email'];//Email de l'utilisateur
$headers = "From: \"*\"<no-reply@*.com>\n";//Email du webmaster
$headers .= "Content-Type: text/plain; charset=\"iso-8859-1\"";
mail($destinataire,$sujet,$message,$headers);
?>
Merci,
itechapp
6 réponses
-
Est-ce que ton code est entier ? Par exemple la fonction mysql_fetch_row() qui te permet d'aller chercher les informations dans la base de donnée ne sont pas affiché dans ton code.
Voici les informations qui sont conseillées :
$sql = mysql_query("SELECT password FROM users WHERE username = $username && email = $email");
$donnee = mysql_fetch_row($sql);
$donnee["password"] devrait contenir le mot de passe.
Je ne sais pas si j'ai tout juste, car j'utilise la méthode PDO au lieu des fonctions mysql. -
Bonjour,
J'ai essayé, mais cela ne fonctionne pas...:
<?php
$db = mysql_connect('***', '****', '****');
// on sélectionne la base
mysql_select_db('spotwerusers',$db);
// on crée la requête SQL
$sql = mysql_query("SELECT password FROM users WHERE username = $username && email = $email");
$donnee = mysql_fetch_row($sql);
$sujet = 'Bienvenue sur *** !';//Le titre de l'email
$message = "Bonjour $username !\n\nBienvenue sur ***.com ! Vous pouvez dès maintenant profiter de nos services, et poser votre premier *** à cette adresse: http://www.***.com/home.php\n\n Nous vous recommandons de garder cet email dans vos archives dans le cas où vous oublieriez vos identifiants. \n \n------------------------------\n Rappel de vos identifiants:\nNom d'utiisateur: $username\nMot de passe: $donnee["password"]\n------------------------------\n\n Besoin d'aide ? Consultez notre foire aux questions à ici: http://www.***.com/faq/, où contactez-nous sur question@****.com. \n \nÀ très bientôt, \nAnastasia de ***.com";//Le message de l'email
$destinataire = $_POST['email'];//Email de l'utilisateur
$headers = "From: \"****\"<no-reply@****.com>\n";//Email du webmaster
$headers .= "Content-Type: text/plain; charset=\"iso-8859-1\"";
mail($destinataire,$sujet,$message,$headers);
?> -
$sql = mysql_query("SELECT password FROM users WHERE username = $username && email = $email");
Cette ligne est fausse, les variables ne peuvent pas être définie car elle sont dans les balises text ("").
$variable = 1337; echo '$variable';
Le echo n'affichera pas 1337, il affichera $variable. -
Merci de ta réponse,
Je ne vois pas comment la modifier... -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Tu peux par exemple utiliser ceci :
$query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'", mysql_real_escape_string($user), mysql_real_escape_string($password));
https://www.php.net/manual/fr/function.mysql-real-escape-string.php-
Ça ne fonctionne toujours pas !
<?php
$db = mysql_connect('***', '***', '***');
// on sélectionne la base
mysql_select_db('****',$db);
// on crée la requête SQL
$query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
mysql_real_escape_string($user),
mysql_real_escape_string($password));
$sujet = 'Bienvenue sur **** !';//Le titre de l'email
$message = "Bonjour $username !\n\nBienvenue sur *****.com ! Vous pouvez dès maintenant profiter de nos services, et poser votre premier Spot à cette adresse: http://www.****.com/home.php\n\n Nous vous recommandons de garder cet email dans vos archives dans le cas où vous oublieriez vos identifiants. \n \n------------------------------\n Rappel de vos identifiants:\nNom d'utiisateur: $username\nMot de passe: $password\n------------------------------\n\n Besoin d'aide ? Consultez notre foire aux questions à ici: http://www.***.com/faq/, où contactez-nous sur question@****.com. \n \nÀ très bientôt, \nAnastasia de ****.com";//Le message de l'email
$destinataire = $_POST['email'];//Email de l'utilisateur
$headers = "From: \"***\"<no-reply@****.com>\n";//Email du webmaster
$headers .= "Content-Type: text/plain; charset=\"iso-8859-1\"";
mail($destinataire,$sujet,$message,$headers);
?> -
C'est normal, j'ai utilisé l'exemple de la doc PHP !
Dans votre cas, ça serait plutôt ceci :$query = sprintf("SELECT password FROM users WHERE username='%s' AND email='%s'", mysql_real_escape_string($username), mysql_real_escape_string($email));
Il faut ensuite executer la requête et récupérer les variables !
-
-
Salut,
Il faudrait idéalement gérer les erreurs sql :
$requete = "SELECT password FROM users WHERE username = '" . mysql_real_escape_string($username) . "' AND email = '" . mysql_real_escape_string($email) . "'"; $sql = mysql_query($requete); if (!$sql) { echo 'Requête invalide : ' . $requete . '<br />'; echo 'Erreur sql : ' . mysql_error(); exit(); } $donnee = mysql_fetch_row($sql); var_dump($donnee);
Bonne journée