T_CONSTANT_ENCAPSED_STRING ???

Résolu
Bonjour,

J'ai un soucis que je n'arrive pas à résoudre puisqu'après plusieurs recherche sur Google de T_CONSTANT_ENCAPSED_STRING je ne trouve rien concernant mon problème.

Voici mon code :

<?
include ('connect.php');

$sql='SELECT * FROM ep_membres WHERE login = "'.$_POST["txtLog"].'"';
$res=mysql_query($sql)
			or die ("utilisateur inexistant");
			
$tab=array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','1','2','3','4','5','6','7','8','9','0');
			
$chaine='';
for ($i=0;$i<8;$i++)
{
        $offset=rand(0,35);
        $chaine=$chaine . $tab[$offset];
}

$mdp='UPDATE ep_membres SET mdp=$chaine WHERE login="'.$_POST["txtLog"]'"';

$toto=mysql_query($mdp)
			or die ("erreur");
			
			
$mail=$_POST["txtMail"];

mail($mail, "nouveau mot de passe", "bonjour ".$_POST['txtLog'].", votre nouveau mot de passe est : $chaine ");

?>


et la ligne où il me dit qu'il y a une erreur :

$mdp='UPDATE ep_membres SET mdp=$chaine WHERE login="'.$_POST["txtLog"]'"';


A chaque fois je lis qu'il faut vérifier les lignes précédentes mais sans cette dernière sus cité, le code marche et je ne vois pas mon erreur.
Merci d'avance pour les pro du forum qui réussiraient à me débloqué.
Configuration: Windows XP
Firefox 2.0.0.12

4 réponses

  1. remplace
    $mdp='UPDATE ep_membres SET mdp=$chaine WHERE login="'.$_POST["txtLog"]'"';

    par
    $mdp="UPDATE ep_membres SET mdp=".$chaine." WHERE login LIKE".$_POST["txtLog"]
    1. Bon, je sais que le titre du topic est en majuscule mais j'ai fais un copier/coller de l'erreur. Merci à l'utilisateur qui voudra bien résoudre mon problème.
      1. salut essaye ca.

        $mdp='UPDATE ep_membres SET mdp= '.$chaine.' WHERE login="'.$_POST["txtLog"].'"';
    2. Salut

      en fait je l'ai déjà essayé ça kyzanth sauf que le mot de passe n'est pas enregistré dans ma BDD et je tombe sur mon message 'erreur' par rapport à ma commande :

      $toto=mysql_query($mdp)
      or die ("erreur");
      1. vu que tu demande de faire une update et qu il trouve pas ton mdp que tu as dans ta clause where c est normal que tu tombe sur erreur.

        faut que tu fasse une insertion si il existe pas
    3. En fait, je cherche à remplacer un mdp par une chaine générée automatiquement dans ma table de façon à ce qu'elle soit insérer dans la ligne de l'utilisateur qui aurait perdu son mdp. En gros à la page d'avant, je demande à rentrer le login et le mail de l'utilisateur qui aurait perdu son mot de passe. Je sais pas si je suis clair mais de la façon dont je l'ai fait ça me paraissait logique (en suivant mes cours).
      1. tu a toujours une erreur ou pas dans ton script actuellement avec l erreur du début corrigé ?

        n'oublie pas de protéger tes variables venant d un formulaire pour éviter les injections SQL (addslashes)
      2. @kyzanthje n'ai plus de T_Constant_encapsed_string mais impossible de rentrer le nouveau mdp dans ma BDD