Parse error: syntax error, unexpected '{' dans un if

Résolu/Fermé
antoine9298 Messages postés 101 Date d'inscription vendredi 5 avril 2013 Statut Membre Dernière intervention 23 décembre 2014 - 14 juil. 2013 à 20:35
antoine9298 Messages postés 101 Date d'inscription vendredi 5 avril 2013 Statut Membre Dernière intervention 23 décembre 2014 - 15 juil. 2013 à 14:40
Bonjour,

le code d'erreur:

Parse error: syntax error, unexpected '{' in /mnt/153/sda/2/8/j.fontaine.olivier/site web/essai/contact/antispam_verif.php on line 9


voici le code ou se presente l'erreur:

<?php session_start();

echo 'vous avez repondu : ' . $_POST['antispam'] .'<br> la reponse est : ' . $_SESSION['rep_antispam'] . '<br><br>';

if(  isset($_POST)  &&  !empty($_POST['antispam'])   ) {


// comparaison   ### l'erreur est ici ###
	if (  mb_strtolower($_POST['antispam'])  ==  mb_strtolower( $_SESSION['rep_antispam'] )    ) {

	echo 'bravo','<br>';

	} else {

	echo '<script type="text/javascript"> alert("Votre reponse est incorrecte, veuillez réessayer."); history.back(); </script>' 

	} 

session_unset();
session_destroy();
}

?>



qui est precédé de ce code:


<?php session_start();
	//numero du test
	$id = rand(1,12) ;


	$connexion = mysql_connect('sql.free.fr', 'j.fontaine.olivier', '***********') 
		OR die('Erreur de connexion à la base de données');

	mysql_select_db('j.fontaine.olivier');
	
	
	$reponse = mysql_query('SELECT question, reponse FROM antispam WHERE id = '.$id) OR die('Erreur de la requête MySQL : '.mysql_error()  );
	
	
	//recuperation des donnés my-sql
	while (  $donnees = mysql_fetch_array($reponse) ) {


$solution = $donnees['reponse'];

//stockage de la reponse:

$_SESSION['rep_antispam'] = $solution;

echo 'question anti-spam:<br>';
echo $donnees['question'];

}

mysql_close();
?>


<br><form method="post" action="antispam_verif.php"><input type="text" name="antispam" />
<input type="submit" name="confirmer" value="verifier" /></form><br>

<?php

echo '<br><br>la reponse est '. $_SESSION['rep_antispam'];

?>


je suis hebergé chez free
merci de votre reponse

4 réponses

Je suis très étonné du message d'erreur et du numéro de ligne que tu indiques.
Tu as bien une erreur, mais c'est un 'unexpected }' à cause du ; qui te manque à la fin de la ligne 15 (echo du javascript)

Si tu as vraiment le message que tu indiques à la ligne que tu dis, ça peut être dû à un caractère invisible. Examine ton fichier avec un éditeur hexadécimal pour être sûr de ce qu'il y a dedans, ou mets le sur cjoint.com
0
antoine9298 Messages postés 101 Date d'inscription vendredi 5 avril 2013 Statut Membre Dernière intervention 23 décembre 2014 6
14 juil. 2013 à 21:47
avez vous un exemple d'editeur hexadecimal?

sinon cela peut bien etre ca:
si j'enleve les {} j'obtient (+ ou -) :
unexpected t_echo on line 10
0
antoine9298 Messages postés 101 Date d'inscription vendredi 5 avril 2013 Statut Membre Dernière intervention 23 décembre 2014 6
14 juil. 2013 à 22:55
meme en corrigeant l'echo ca ne marche pas
0
Utilisateur anonyme
14 juil. 2013 à 23:02
Un éditeur hexadécimal est un programme qui montre le contenu d'un fichier sous forme d'hexadécimal. Mais peu importe, si tu ne connais pas, mets le fichier sur cjoint.com (ou autre) pour qu'on puisse voir son contenu exact.
0
antoine9298 Messages postés 101 Date d'inscription vendredi 5 avril 2013 Statut Membre Dernière intervention 23 décembre 2014 6
14 juil. 2013 à 23:23
La technique cjoint ne donne rien d'etrange:
(http://cjoint.com/data3/3Goxv0P6aNH.htm)
0
Il y a bien un problème dans ton fichier.
Tu l'as, au moins en partie, obtenu par copier-coller à partir d'un site ?
Dans if ( mb_strtolower(, l'espace entre if et ( n'est pas une espace normale (code hexa 20) mais une espace insécable (code hexa A0)
Supprime l'espace entre if et ( sur cette ligne, ensuite tu peux en remettre une si tu veux.

https://www.cjoint.com/?3Gox71lVjzD
0
antoine9298 Messages postés 101 Date d'inscription vendredi 5 avril 2013 Statut Membre Dernière intervention 23 décembre 2014 6
15 juil. 2013 à 01:02
tu avais raison:
j'avais fais un "copier-coler" de la fonction a partir de php-facile ou autre site du genre...
ca marche impec maintnant
0
antoine9298 Messages postés 101 Date d'inscription vendredi 5 avril 2013 Statut Membre Dernière intervention 23 décembre 2014 6
Modifié par antoine9298 le 15/07/2013 à 14:48
il avait dû utiliser : &nbsp; (j'ai du le coder: &amp;nbsp;) :
nbsp signifie Non Breakable SPace (espace isecable).
0