Parse error: syntax error, unexpected T_VARIABLE

camarchelg Messages postés 9 Statut Membre -  
jisisv Messages postés 3678 Statut Modérateur -
Bonjour,

bonjour tout le monde pour information je suis encore debutant en php , dans mon code pour la modification du mot de passe ca bloque sur l'erreur suivante : Parse error: syntax error, unexpected T_VARIABLE on line 21
voila le code :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Changer le mot de passe</title>
</head>
<body>
<form method="post" action="">
<label>Mot de passe actuel : <input type="password" name="amdp" ></label><br></br>
<label>Nouveau mot de passe : <input type="password" name="nmdp" ></label><br></br>
<label>Verification mot de passe : <input type="password" name="vmdp" ></label><br></br>
<input type="submit" name="submit" value=" Envoyer ">
</form>
<?php
include("connexion.php");

$result=false;
if(isset($_POST['submit']))
?> { <?php

$amdp=$_POST['amdp'];
$nmdp=$_POST['nmdp'];
$vmdp=$_POST['vmdp'];
$login=$_SESSION['Etud_mat'];
if (($amdp!='')&&($nmdp!='')&&($vmdp!='')) {
if ($amdp==$_SESSION['password']){
if($nmdp==$vmdp){
$sql="UPDATE etudiant SET psw='$nmdp' WHERE Etud_mat='$login'";
$result=mysql_query($sql);
echo 'Modification du mot de passe effectuee avec succes';
$_SESSION['password']=$nmdp;
} else {
echo 'Erreur entre le nouveau mot de passe entré et la verification';
}
} else {
echo 'Le mot de passe actuel n\'est pas valide';
}
} else {
echo 'Veuillez remplir tous les champs';
}
}
else {
echo 'Page de modification de mot de passe - special VIP';
}

?>
</body>
</html>

merci d'avance pour votre aide !!

12 réponses

  1. Utilisateur anonyme
     
    Salut, je vois un truc bizzare :

    <?php
    include("connexion.php");
    
    $result=false;
    if(isset($_POST['submit']))
    ?>/*pouquoi fermer*/ { <?php // pour réouvrir ???
    
    $amdp=$_POST['amdp']; 
    


    ensuite c'est autre mais tu es injectable ....

    http://fr.openclassrooms.com/informatique/cours/eviter-les-injections-sql

    bonne journée
    ׺°"~'"°º×]|I{*------» LÖBÖTÖ «------*}I|[׺°"~'"°º×
    1
  2. ReDLoG Messages postés 393 Statut Membre 57
     
    Bonsoir,

    Normalement une erreur relevée par PHP comporte un numéro de ligne précédée du nom de fichier dans laquelle se trouve l'erreur: Parse error: syntax error, unexpected T_VARIABLE......
    A toi de jouer...
    Cordialement.
    0
  3. camarchelg Messages postés 9 Statut Membre
     
    ouii effectivement ReDLog , mais j'arrive pas a detecter le type de cette erreur , tout en sachant que j'ai bien decortiqué le code mais en vain
    0
  4. camarchelg Messages postés 9 Statut Membre
     
    merciii lobotoFix !
    mais apres l'avoir corrigé il me lance :
    Parse error: syntax error, unexpected '{' in C:\wamp\www\TPE\changerMP.php on line 19
    j'arrive pas a detecter l'accolade manquante !
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Utilisateur anonyme
     
    Salut, à vu de nez (je peux me tromper)

    echo 'Erreur entre le nouveau mot de passe entré et la verification';
    }//p'etre là
    } else {
    echo 'Le mot de passe actuel n\'est pas valide';
    }// pt'etre là aaussi
    } else {
    echo 'Veuillez remplir tous les champs';
    }
    }  


    ׺°"~'"°º×]|I{*------» LÖBÖTÖ «------*}I|[׺°"~'"°º×
    0
  7. camarchelg Messages postés 9 Statut Membre
     
    merci pour la precision , mais celles que vs vennez de mettre en gras ferment d'autres accoalde en haut du if , je vois pas comment je vais les eliminer
    0
    1. Utilisateur anonyme
       
      ha ouai tu as raison...je regarde dans la soirée
      0
    2. camarchelg Messages postés 9 Statut Membre
       
      mercii infiniment lobotoFix !!
      0
  8. Utilisateur anonyme
     
    Salut,

    remet voir ton code modifier et celui de connexion.php (sans les identifiants)
    0
  9. camarchelg Messages postés 9 Statut Membre
     
    dac le voila :)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html>
    <head>
    <title>Changer le mot de passe</title>
    </head>
    <body>
    <form method="post" action="">
    <label>Mot de passe actuel : <input type="password" name="amdp" ></label><br></br>
    <label>Nouveau mot de passe : <input type="password" name="nmdp" ></label><br></br>
    <label>Verification mot de passe : <input type="password" name="vmdp" ></label><br></br>
    <input type="submit" name="submit" value=" Envoyer ">
    </form>
    <?php
    include("connexion.php");

    $result=false;

    $amdp=$_POST['amdp'];
    $nmdp=$_POST['nmdp'];
    $vmdp=$_POST['vmdp'];
    $login=$_SESSION['Etud_mat'];
    if(isset($_POST['submit']))
    {

    if (($amdp!='') and ($nmdp!='')and ($vmdp!='')) {
    if ($amdp==$_SESSION['password']){
    if($nmdp==$vmdp){
    $sql="UPDATE etudiant SET psw='$nmdp' WHERE Etud_mat='$login'";
    $result=mysql_query($sql);
    echo 'Modification du mot de passe effectuee avec succes';
    $_SESSION['password']=$nmdp;
    } else {
    echo 'Erreur entre le nouveau mot de passe entré et la verification';
    }
    } else {
    echo 'Le mot de passe actuel n\'est pas valide';
    }
    }
    else { echo 'Veuillez remplir tous les champs';}
    }
    else {
    echo 'Page de modification de mot de passe - special VIP';
    }

    ?>
    </body>
    </html>

    et voila pour la connexion :

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
    <head>
    <?php
    try
    {
    $bdd = new PDO('mysql:host=localhost;dbname=tpe_bd', 'root','', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
    }catch(Exception $e)
    {
    die('Erreur : '.$e->getMessage());
    }
    ?>
    </head>
    </html>
    0
    1. ReDLoG Messages postés 393 Statut Membre 57
       
      Ton fichier connexion.php NE doit PAS contenir de code HTML, seulement du code PHP :
      <?php
      try {
      	$bdd = new PDO('mysql:host=localhost;dbname=tpe_bd', 'root','', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
      } catch(Exception $e) {
      	die('Erreur : '.$e->getMessage());
      }
      ?>

      C'est ce qui fait buguer ton code au niveau des accolades lorsque tu inclus le fichier connexion.php dans le script de traitement.
      Cordialement
      0
    2. camarchelg Messages postés 9 Statut Membre
       
      avec votre modification ReDLoG , je me suis retrouvé avec une autre erreur de type T_STRING

      Parse error: syntax error, unexpected T_STRING in C:\wamp\www\TPE\changerMP.php on line 22

      la ligne 22 c exactement ça : if(isset($_POST['submit']))

      cordialement
      0
  10. Utilisateur anonyme
     
    salut, ReDLoG a raison il ne faut pas de HTML.
    Ensuite, je pense que tu aura une erreur plus tard. En effet, tu utilise des sessions.

    En haut de chaque fichier avant tout code, tu dois les déclarées.

    <?php session_start();  ?>
    //puis tu met ta page normalement
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    /*
     * bla bla bla
     */
    


    Ensuite une fois ton code fonctionnel il faudra impérativeement que tu hash tout tes mots de passes et que tu corrige les risques d'injections. Je vois que pour te connecter tu utilise PDO. PDO cela permet de faire des requêtes préparées, pourquoi ne pas les utilisées...
    ׺°"~'"°º×]|I{*------» LÖBÖTÖ «------*}I|[׺°"~'"°º×
    0
  11. Utilisateur anonyme
     
    salut, je viens de tester !

    alors si tu remet comme avant ceci :

    $amdp=$_POST['amdp'];
    $nmdp=$_POST['nmdp'];
    $vmdp=$_POST['vmdp'];
    $login=$_SESSION['Etud_mat'];
    if(isset($_POST['submit']))
    { 
    
    // en
    
    
    if(isset($_POST['submit'])) { 
    $amdp=$_POST['amdp'];
    $nmdp=$_POST['nmdp'];
    $vmdp=$_POST['vmdp'];
    $login=$_SESSION['Etud_mat'];
    
    


    que tu enleve le code html de connexion.php

    que tu démarre tes sessions en début de fichier et que tes sessions existe il n'y aura pas d'erreur de type php. Ensuite sql je sais pas...
    0
  12. camarchelg Messages postés 9 Statut Membre
     
    merci bcp lobotoFix et ReDLoG pour votre aide , c'est toujours le meme probleme qui persiste , unexpected T_STRING ...
    en tous cas merci encore une fois
    0
  13. jisisv Messages postés 3678 Statut Modérateur 936
     
    johand@osiris: ~ $ cat parse_error.php
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html>
    <head>
    <title>Changer le mot de passe</title>
    </head>
    <body>
    <form method="post" action="">
    <label>Mot de passe actuel : <input type="password" name="amdp" ></label><br></br>
    <label>Nouveau mot de passe : <input type="password" name="nmdp" ></label><br></br>
    <label>Verification mot de passe : <input type="password" name="vmdp" ></label><br></br>
    <input type="submit" name="submit" value=" Envoyer ">
    </form>
    <?php
    include("connexion.php");

    $result=false;
    if(isset($_POST['submit']))
    {

    $amdp=$_POST['amdp'];
    $nmdp=$_POST['nmdp'];
    $vmdp=$_POST['vmdp'];
    $login=$_SESSION['Etud_mat'];
    if (($amdp!='')&&($nmdp!='')&&($vmdp!='')) {
    if ($amdp==$_SESSION['password']){
    if($nmdp==$vmdp){
    $sql="UPDATE etudiant SET psw='$nmdp' WHERE Etud_mat='$login'";
    $result=mysql_query($sql);
    echo 'Modification du mot de passe effectuee avec succes';
    $_SESSION['password']=$nmdp;
    } else {
    echo 'Erreur entre le nouveau mot de passe entré et la verification';
    }
    } else {
    echo 'Le mot de passe actuel n\'est pas valide';
    }
    } else {
    echo 'Veuillez remplir tous les champs';
    }
    }
    else {
    echo 'Page de modification de mot de passe - special VIP';
    }

    ?>
    </body>
    </html>
    johand@osiris: ~ $ php -l parse_error.php
    No syntax errors detected in parse_error.php

    Ceci ne présage en rien du fonctionnemen correct du code !

    0