Récupération mot de passe/ généré une clé unique
challenger11
Messages postés
16
Statut
Membre
-
ludo1325 Messages postés 175 Statut Membre -
ludo1325 Messages postés 175 Statut Membre -
Bonjour,
Je veux réaliser un script pour récupérer un mot de passe oublié. Je bloque dans la parti de génération du clé , en effet j'arrive pas à insérer la clés dans ma base de données voici mon code pour cette partie :
Il m'affiche cette erreur :Erreur SQL ligne 22 : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near
c'est à dire dans cette requête:
Je veux réaliser un script pour récupérer un mot de passe oublié. Je bloque dans la parti de génération du clé , en effet j'arrive pas à insérer la clés dans ma base de données voici mon code pour cette partie :
<?php
mysql_connect('localhost','root','');
mysql_select_db('utilisateur');
if (isset($_POST['envoyer'])&&(!empty($_POST['email'])))
{
$email = $_POST['email'];
$sql = "SELECT id, pseudo, email FROM users WHERE email='".mysql_real_escape_string($email)."' LIMIT 1" ;
$res = mysql_query($sql)or exit('Erreur SQL ligne '.__LINE__.' : '.mysql_error());
if (@mysql_num_rows($res)!=1) die('Email inconnu');
$row = mysql_fetch_assoc($res);
$pseudo = $row['pseudo'];
$umail = $row['email'];
$uk=$row['id'];
//généré une clé unique
$key = sha1(uniqid(rand()));
$sql = 'UPDATE users SET keys="'.$key.'" WHERE id="'.$uk.'"';
$res = mysql_query($sql)or exit('Erreur SQL ligne '.__LINE__.' : '.mysql_error()) ;
}
?>
<html>
<head></head>
<body>
<form name="f" method="post">
<fieldset>
<legend>Mot de passe oublié ?</legend>
<label for="email">Email</label>
<input name="email" placeholder="Mail@domain.com" type="email"><br>
<input name="envoyer" type="submit" value="envoyer">
</fieldset>
</form>
</body>
</html>
Il m'affiche cette erreur :Erreur SQL ligne 22 : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near
c'est à dire dans cette requête:
$sql = 'UPDATE users SET keys="'.$key.'" WHERE id="'.$uk.'"';
1 réponse
-
Bonjour,
la requête fonctionne correctement chez moi.
Si ce n'est pas déjà fait, vérifie dans ta base le type du champ keys.
- Vérifie que la variable $uk contiennent bien un identifiant
- Vérifie que la valeur de $key correspondent bien au type du champ dans la base, (le mieux d'après moi serait un VARCHAR).
J'ai par contre essayé avec une instance de PDO