Pb dans ma fonction UPDATE

Nikito
Invité n'ayant pas de compte PHPfrance

30 août 2010, 18:51

Bonjour à tous,
La modification UPDATE est correct si je rentre des chiffres dans le champ "Entrez le nouveau mot de passe" ($champ), si je rentre des lettres dans ce même champ de saisi, alors j'ai en retour "Erreur lors de la modification !".

Je ne peux donc pas renseigner ce champ avec des caractères alphabétiques !
Si vous avez une solution à ce problème...
Merci pour les infos

Mon code (tout sur la même page) :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="de">
<head>
<title>Modification du mot de passe</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="language" content="fr" />
<meta name="description" content=""/>
<meta name="keywords" content="" />
<meta name="robots" content="index, follow, noarchive" />
<link href="../../feuille.css" rel="stylesheet" type="text/css" />
<link href="style.css" rel="stylesheet" type="text/css" />


<?php
// Connexion à la BDD
try
{
	$bdd = new PDO('mysql:host=localhost;dbname=password', 'root', '');
}

catch (Exception $e)
{
        die('Erreur : ' . $e->getMessage());
}

if(isset($_POST['mdp']))
{ 
$mdp=$_POST['mdp']; 
$change=$_POST['change'];
 
// Modifier la bdd 
mysql_query ("UPDATE password SET id=$mdp, mot_de_passe=$change, date=NOW() where id=$mdp")or die("Erreur lors de la modification !");
}

?>

<body>
<form method="POST" action="password_modif.php">
  <p><img src="../../images/header.png" width="856" height="153" /></p>
  <p class="mess5"><span class="mess3">Modification d'un mot de passe</span></p>
  <p class="mess5">Entrez l' id à modifier :</p>
  <p>
    <label>
      <input name="mdp" type="text" style="text-align:center; " size="10"/>
    </label>
  </p>
  <p class="mess5">Entrez le nouveau mot de passe :</p>
  <p>
    <input type="text" name="change" style="text-align:center; ">
  </p>
  <p>
    <input type="submit" value="Modifier">
  </p>
  <p><a href="accueil.php" class="button_dark">Quitter</a></p>
</form>
</body>
</html> 
<?php
// DECONNEXION bdd MYSQL
close();
?>

Mammouth du PHP | 19672 Messages

30 août 2010, 19:56

Normal, tu utilises une mauvaise habitude de beaucoup de codeurs en effectuant pas les concaténations proprement.

Essaye un truc, commence par préparer ta requête juste avant de la faire exécuter comme ceci par exemple :
$sql = "UPDATE password SET id=$mdp, mot_de_passe=$change, date=NOW() where id=$mdp";
// Modifier la bdd
mysql_query ($sql)or die("Erreur lors de la modification !");
Là au moins, tu as une petite chance de te faciliter le débogage : Tu peux ainsi insérer temporairement quelque chose comme ceci :
$sql = "UPDATE password SET id=$mdp, mot_de_passe=$change, date=NOW() where id=$mdp";
echo("<pre>\n");
var_dump($sql);
echo("</pre>\n");
// Modifier la bdd
mysql_query ($sql)or die("Erreur lors de la modification !");
Lance ta page et tente une mise à jour de tes données : ta requête va alors s'afficher à l'écran : tu vas pouvoir faire un copier/coller pour la tester directement dans PHPMyAdmin par exemple, et tu vas voir un beau message d'erreur ... à moins qu'en regardant la requête obtenue tu ne la voies avant ;)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Nikito
Invité n'ayant pas de compte PHPfrance

31 août 2010, 20:07

Bonsoir Cyrano et merci pour ta réponse qui ma permis de résoudre mon problème.
Bonne soirée !

Mammouth du PHP | 19672 Messages

31 août 2010, 20:11

:) N'oublie pas le [Résolu] ;)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: