Parse error: syntax error, unexpected T_VARIABLE

Fermé
camarchelg Messages postés 8 Date d'inscription vendredi 13 juin 2014 Statut Membre Dernière intervention 14 juin 2014 - Modifié par camarchelg le 13/06/2014 à 17:45
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 - 15 juin 2014 à 09:59
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

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
ReDLoG Messages postés 243 Date d'inscription mardi 12 mars 2013 Statut Membre Dernière intervention 28 octobre 2021 57
13 juin 2014 à 17:47
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
camarchelg Messages postés 8 Date d'inscription vendredi 13 juin 2014 Statut Membre Dernière intervention 14 juin 2014
Modifié par camarchelg le 13/06/2014 à 17:51
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
camarchelg Messages postés 8 Date d'inscription vendredi 13 juin 2014 Statut Membre Dernière intervention 14 juin 2014
13 juin 2014 à 18:18
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
camarchelg Messages postés 8 Date d'inscription vendredi 13 juin 2014 Statut Membre Dernière intervention 14 juin 2014
Modifié par camarchelg le 13/06/2014 à 19:17
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
Utilisateur anonyme
13 juin 2014 à 19:21
ha ouai tu as raison...je regarde dans la soirée
0
camarchelg Messages postés 8 Date d'inscription vendredi 13 juin 2014 Statut Membre Dernière intervention 14 juin 2014
13 juin 2014 à 19:35
mercii infiniment lobotoFix !!
0
Utilisateur anonyme
13 juin 2014 à 21:23
Salut,

remet voir ton code modifier et celui de connexion.php (sans les identifiants)
0
camarchelg Messages postés 8 Date d'inscription vendredi 13 juin 2014 Statut Membre Dernière intervention 14 juin 2014
13 juin 2014 à 23:13
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
ReDLoG Messages postés 243 Date d'inscription mardi 12 mars 2013 Statut Membre Dernière intervention 28 octobre 2021 57
13 juin 2014 à 23:54
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
camarchelg Messages postés 8 Date d'inscription vendredi 13 juin 2014 Statut Membre Dernière intervention 14 juin 2014
Modifié par camarchelg le 14/06/2014 à 01:04
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
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
Utilisateur anonyme
14 juin 2014 à 08:43
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
camarchelg Messages postés 8 Date d'inscription vendredi 13 juin 2014 Statut Membre Dernière intervention 14 juin 2014
14 juin 2014 à 22:11
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
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
15 juin 2014 à 09:59
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