Se connecter / S'enregistrer

Résolu [PHP/Mysql]Problème UPDATE

Solutions (12)
Tags :
  • Mot de passe
  • Php
  • MySQL
  • Programmation
|
Bonjour, j'ai écrit cette petite requête qui devrait changer le mot de passe :

  1. $password=mysql_real_escape_string($_POST['password']);
  2. $id=$_SESSION['id'];
  3. $requete1=mysql_query("UPDATE account SET password='".$password."' WHERE id='".$id."' ")or die(mysql_error());


Mais elle ne fait rien, donc je pense qu'il y a une erreur dans la syntaxe mais je n'arrive pas à trouver, si quelqu'un peut m'aider.
Merci d'avance.
Contenus similaires
Meilleure solution
partage
|
mysql_real_escape_string doit être utiliser APRES la connexion à la bdd!
  • Commenter cette solution |
Score
0
òh
òi
|
Ha bah voilà, un grand merci à vous.
  • Commenter cette réponse |
Score
0
òh
òi
|
voilà mon code

  1. <?php
  2.  
  3. if(empty($_SESSION['id']))
  4. {
  5. echo"Vous devez être connecté pour voir cette page";
  6. exit;
  7.  
  8. }
  9. else
  10. {
  11. if(isset($_POST['submit']))
  12. {
  13.  
  14. if(empty($_POST['password']))
  15. {
  16. echo"Vous devez entrer un mot de passe ";
  17. }
  18. else
  19. {
  20. $password=mysql_real_escape_string($_POST['password']);
  21. include'include/fr/id.php';
  22. $connection = mysql_connect("$hote","$user","$password");
  23. mysql_select_db($db);
  24. $id=$_SESSION['id'];
  25. $requete1=mysql_query("UPDATE account SET password='".$password."' WHERE id='".$id."' " )or die(mysql_error());
  26.  
  27. echo"Votre mot de passe a était changé avec succès !";
  28. }
  29.  
  30.  
  31. }
  32. else
  33. {
  34.  
  35. echo"Entrez votre nouveau mot de passe.";
  36. echo'<form action="index.php?page=changepass3" method="post">';
  37. echo'<p><input type="password" name="password" value="Password" /></p>';
  38. echo'<p><input type="submit" value="Confirmer" name="submit" /></p>';
  39. echo'</form>';
  40.  
  41. }
  42. }
  43. ?>
  • Commenter cette réponse |
Score
0
òh
òi
|
Ton champ password est du meme type que ton champ pseudo (varchar)?
  • Commenter cette réponse |
Score
0
òh
òi
|
Oui
  • Commenter cette réponse |
Score
0
òh
òi
|
Bonjour,

Bête question, mais tu as vérifier si dans ton formulaire l'input à bien comme nom "password"?
  • Commenter cette réponse |
Score
0
òh
òi
|
Oui la variable $id a la même valeur de dans la base de données.

Et je pense pas que ça vienne étant donné que si je change juste la colonne, la requête fonctionne.


Exemple:


Fonctionne pas :
  1. $requete1=mysql_query("UPDATE account SET password='".$password."' WHERE id='".$id."' " )or die(mysql_error());

Fonctionne :
  1. $requete1=mysql_query("UPDATE account SET pseudo='".$password."' WHERE id='".$id."' " )or die(mysql_error());
  • Commenter cette réponse |
Score
0
òh
òi
|
Oui, donc il semble que $id soit à une valeur incorrecte.
Peux-tu l'afficher pour contrôle ?

Edit : oups, je crois avoir compris que tu l'as déjà fait ...
  • Commenter cette réponse |
Score
0
òh
òi
|
j'ai ajouté ça après juste après ma requête :

  1. printf("Lignes effacées : %d\n", mysql_affected_rows());


et le résultat est


  1. Lignes effacées : 0
  • Commenter cette réponse |
Score
0
òh
òi
|
Salut,
Essaye de voir si tu as des lignes affectées par ton update, avec mysql_affected_rows :

http://www.php.net/manual/fr/function.mysql-affected-ro...
  • Commenter cette réponse |
Score
0
òh
òi
|
Merci de ta réponse, mais il y a toujours le même problème, j'ai vérifié les variables et elle correspondes à la bdd donc je vois pas d'où ça peut venir.

ps: J'ai essayé avec d'autre colonnes, et ça fonctionne pas que sur la colonne password.
  • Commenter cette réponse |
Score
0
òh
òi
|
Essaye plutôt:
  1. mysql_query("UPDATE account SET password='".$password."' WHERE id=".intval($id))
  • Commenter cette réponse |

Ce n'est pas ce que vous cherchiez ?

Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS