Parse error: syntax error, unexpected '{'
Résolu/Fermé
Fchaps
Messages postés
120
Date d'inscription
mercredi 23 décembre 2009
Statut
Membre
Dernière intervention
26 décembre 2016
-
Modifié par Fchaps le 15/03/2012 à 03:41
Fchaps Messages postés 120 Date d'inscription mercredi 23 décembre 2009 Statut Membre Dernière intervention 26 décembre 2016 - 17 mars 2012 à 01:41
Fchaps Messages postés 120 Date d'inscription mercredi 23 décembre 2009 Statut Membre Dernière intervention 26 décembre 2016 - 17 mars 2012 à 01:41
A voir également:
- Parse error: syntax error, unexpected '{'
- Eespt technical error ✓ - Forum TNT / Satellite / Réception
- Error 0x80070643 - Accueil - Windows
- Cpu over temperature error - Forum Matériel & Système
- Fan error lenovo - Forum Refroidissement
- Parse error: syntax error, unexpected token "use" ✓ - Forum PHP
14 réponses
Bonjour
Laquelle est la ligne 86 ? Et si c'est la première, peux-tu montrer les 10 lignes précédentes ?
Laquelle est la ligne 86 ? Et si c'est la première, peux-tu montrer les 10 lignes précédentes ?
Fchaps
Messages postés
120
Date d'inscription
mercredi 23 décembre 2009
Statut
Membre
Dernière intervention
26 décembre 2016
16
Modifié par Fchaps le 16/03/2012 à 01:09
Modifié par Fchaps le 16/03/2012 à 01:09
<div class="avatar"> <?php if($profil['membre_avatar'] == '') { echo 'Pas d\'avatar'; } ?> </div> <!--liste//--> <ul> <li><b>Pseudo :</b> <?php echo htmlspecialchars($profil['membre_pseudo'], ENT_QUOTES); ?></li> <li><b>Date d'inscription :</b> <?php echo mepd($profil['membre_inscription']); ?></li> <li><b>Groupe :</b> <?php if($profil[membre_banni] == 1) echo 'bannis'; else echo 'membres'; ?></li> <li><b>Dernier passage :</b> <?php echo mepd($profil['membre_derniere_visite']); ?></li> <li><b>Statut :</b> <?php if($profil['connectes_id'] == $profil['membre_id']) {
Voilà les lignes précédentes, et donc la ligne 86 correspond à la dernière ligne, le "if"
soit la première sur le code précédent.
J'ai déjà fait le tour, aucun point virgule manquant, aucunes accolades qui n'a pas sa fermante.....je comprend vraiment pas.
Tout vient à point à qui sait attendre!
AssassinTourist
Messages postés
5710
Date d'inscription
lundi 16 janvier 2012
Statut
Contributeur
Dernière intervention
29 février 2024
1 311
16 mars 2012 à 10:05
16 mars 2012 à 10:05
Je lis $profil[membre_banni] au lieu de $profil['membre_banni']
C'est effectivement anormal, sauf si (peu probable) membre_banni est défini comme une constante.
Il faudra alors comprendre pourquoi l'erreur n'est qu' à la ligne 86. Mais ce numéro n'est peut-être pas le bon, les indications de Fchaps ne sont pas très fiables puisqu'il met en titre que son erreur est "unexpected '{'" puis dans le texte que l'erreur est "unexpected T_STRING"
Il faudra alors comprendre pourquoi l'erreur n'est qu' à la ligne 86. Mais ce numéro n'est peut-être pas le bon, les indications de Fchaps ne sont pas très fiables puisqu'il met en titre que son erreur est "unexpected '{'" puis dans le texte que l'erreur est "unexpected T_STRING"
AssassinTourist
Messages postés
5710
Date d'inscription
lundi 16 janvier 2012
Statut
Contributeur
Dernière intervention
29 février 2024
1 311
16 mars 2012 à 10:27
16 mars 2012 à 10:27
Il arrive souvent qu'une erreur en amont se répercute d'une manière ou d'une autre plus bas (suivant la façon qu'a le navigateur de lire tout ça)
Mais je ne dis pas que l'erreur est forcément celle-là.
Mais je ne dis pas que l'erreur est forcément celle-là.
Il arrive souvent qu'une erreur en amont se répercute d'une manière ou d'une autre plus bas
C'est bien pour ça que je lui ai demandé les lignes précédentes. Mais une erreur qui apparaît en aval d'une autre est quand même toujours explicable. Et ici, je ne la vois pas l'explication.
(suivant la façon qu'a le navigateur de lire tout ça)
Ça m'étonne que tu écrives ça. Tu sais bien que la navigateur n'a rien à voir avec l'analyse syntaxique faite par le PHP du serveur. Dans le pire des cas, on se retrouve avec des variables non définies, mais un unexpected T_STRING ou {, je ne vois pas comment
Mais je ne dis pas que l'erreur est forcément celle-là
Il y a quand même de très grandes chances que si.
C'est bien pour ça que je lui ai demandé les lignes précédentes. Mais une erreur qui apparaît en aval d'une autre est quand même toujours explicable. Et ici, je ne la vois pas l'explication.
(suivant la façon qu'a le navigateur de lire tout ça)
Ça m'étonne que tu écrives ça. Tu sais bien que la navigateur n'a rien à voir avec l'analyse syntaxique faite par le PHP du serveur. Dans le pire des cas, on se retrouve avec des variables non définies, mais un unexpected T_STRING ou {, je ne vois pas comment
Mais je ne dis pas que l'erreur est forcément celle-là
Il y a quand même de très grandes chances que si.
AssassinTourist
Messages postés
5710
Date d'inscription
lundi 16 janvier 2012
Statut
Contributeur
Dernière intervention
29 février 2024
1 311
16 mars 2012 à 11:08
16 mars 2012 à 11:08
Quand je parlais de la façon qu'avait le navigateur de lire tout ça, c'est que nous en tant qu'être humain, ce qu'on on écrit paraît logique (par exemple $profil[membre_banni]) alors que le navigateur / compilateur / serveur / machine va être bête et méchant et ne va pas chercher notre logique, juste notre syntaxe.
Fchaps
Messages postés
120
Date d'inscription
mercredi 23 décembre 2009
Statut
Membre
Dernière intervention
26 décembre 2016
16
Modifié par Fchaps le 16/03/2012 à 19:00
Modifié par Fchaps le 16/03/2012 à 19:00
Oui de toute façon, ca n'a aucun rapport avec ça puisque depuis j'ai repris le code à zéro, il me trouve des erreurs sur chaque ligne if qui contient ==
En le réecrivant simplement sans rien changé ca passe, mais la il me bloque un peu plus haut.
Je met tout le début du code :
<?php
session_start();
header('Content-type: text/html; charset=utf-8');
include('../includes/config.php');
/********Actualisation de la session...**********/
include('../includes/fonctions.php');
connexionbdd();
actualiser_session();
/********Gestion avant affichage...***********/
if($_GET['id'] == '')
{
if(isset($_SESSION['membre_id'])) $id = $_SESSION['membre_id'];
else $id = -1;
}
else $id = $_GET['id'];
$profil = sqlquery("SELECT * FROM membres
LEFT JOIN connectes
ON connectes_id = membre_id
WHERE membre_id=".intval($id), 1);
if($profil['membre_id'] == '' || $id == -1)
{
$informations = Array(
true,
'Page membre inconnue',
'Ce membre n\'existe pas.',
'',
'../index.php',
3
);
require_once('../information.php');
exit();
}
/********En-tête et titre de page*********/
$titre = 'Membre : '.htmlspecialchars($profil['membre_pseudo'], ENT_QUOTES).'';
include('../includes/haut.php');
/**********Fin en-tête et titre***********/
?>
<div id="colonne_gauche">
<?php
include('../includes/colg.php');
?>
</div>
<!--contenu//-->
<div id="contenu">
<div id="map">
<a href="../index.php">Accueil</a> => <a href="user.php?id=<?php echo intval($profil['membre_id']); ?>">Profil de <?php echo htmlspecialchars($profil['membre_pseudo'], ENT_QUOTES); ?></a>
</div>
<h1>Profil de <?php echo htmlspecialchars($profil['membre_pseudo'], ENT_QUOTES); ?></h1>
<div class="profil_cellule_float">
<h2>Informations générales</h2>
<div class="avatar">
<?php
if($profil['membre_avatar'] == '')
{
echo 'Pas d\'avatar';
}
?>
</div>
<!--liste//-->
<ul>
<li><b>Pseudo :</b> <?php echo htmlspecialchars($profil['membre_pseudo'], ENT_QUOTES); ?></li>
<li><b>Date d'inscription :</b> <?php echo mepd($profil['membre_inscription']); ?></li>
<li><b>Groupe :</b> <?php if($profil['membre_banni'] == 1) echo 'bannis'; else echo 'membres'; ?></li>
<li><b>Dernier passage :</b> <?php echo mepd($profil['membre_derniere_visite']); ?></li>
<li><b>Statut :</b>
<?php
if($profil['connectes_id'] == $profil['membre_id'])
{
?>
<span class="actif"><?php echo htmlspecialchars($profil['membre_pseudo'], ENT_QUOTES); ?> est connecté</span>
<?php
}
else
{
?>
<span class="inactif"><?php echo htmlspecialchars($profil['membre_pseudo'], ENT_QUOTES); ?> est déconnecté</span></li>
<?php
}
?>
</ul>
</div>
Donc je sais déjà qu'elle va être la suite des erreurs, ce sont les 3 en gras, la je bloque sur la première, sur l'avatar alors que c'est la même ligne que sur le code précédent qui passait pourtant....
Il me trouve un T_STRING, et si j'arrive a passer cette erreur (simplement en réecrivant la ligne, il arrive sur une erreur "unexpected '{'" sur l'accolade du dessous.
Tout vient à point à qui sait attendre!
En le réecrivant simplement sans rien changé ca passe, mais la il me bloque un peu plus haut.
Je met tout le début du code :
<?php
session_start();
header('Content-type: text/html; charset=utf-8');
include('../includes/config.php');
/********Actualisation de la session...**********/
include('../includes/fonctions.php');
connexionbdd();
actualiser_session();
/********Gestion avant affichage...***********/
if($_GET['id'] == '')
{
if(isset($_SESSION['membre_id'])) $id = $_SESSION['membre_id'];
else $id = -1;
}
else $id = $_GET['id'];
$profil = sqlquery("SELECT * FROM membres
LEFT JOIN connectes
ON connectes_id = membre_id
WHERE membre_id=".intval($id), 1);
if($profil['membre_id'] == '' || $id == -1)
{
$informations = Array(
true,
'Page membre inconnue',
'Ce membre n\'existe pas.',
'',
'../index.php',
3
);
require_once('../information.php');
exit();
}
/********En-tête et titre de page*********/
$titre = 'Membre : '.htmlspecialchars($profil['membre_pseudo'], ENT_QUOTES).'';
include('../includes/haut.php');
/**********Fin en-tête et titre***********/
?>
<div id="colonne_gauche">
<?php
include('../includes/colg.php');
?>
</div>
<!--contenu//-->
<div id="contenu">
<div id="map">
<a href="../index.php">Accueil</a> => <a href="user.php?id=<?php echo intval($profil['membre_id']); ?>">Profil de <?php echo htmlspecialchars($profil['membre_pseudo'], ENT_QUOTES); ?></a>
</div>
<h1>Profil de <?php echo htmlspecialchars($profil['membre_pseudo'], ENT_QUOTES); ?></h1>
<div class="profil_cellule_float">
<h2>Informations générales</h2>
<div class="avatar">
<?php
if($profil['membre_avatar'] == '')
{
echo 'Pas d\'avatar';
}
?>
</div>
<!--liste//-->
<ul>
<li><b>Pseudo :</b> <?php echo htmlspecialchars($profil['membre_pseudo'], ENT_QUOTES); ?></li>
<li><b>Date d'inscription :</b> <?php echo mepd($profil['membre_inscription']); ?></li>
<li><b>Groupe :</b> <?php if($profil['membre_banni'] == 1) echo 'bannis'; else echo 'membres'; ?></li>
<li><b>Dernier passage :</b> <?php echo mepd($profil['membre_derniere_visite']); ?></li>
<li><b>Statut :</b>
<?php
if($profil['connectes_id'] == $profil['membre_id'])
{
?>
<span class="actif"><?php echo htmlspecialchars($profil['membre_pseudo'], ENT_QUOTES); ?> est connecté</span>
<?php
}
else
{
?>
<span class="inactif"><?php echo htmlspecialchars($profil['membre_pseudo'], ENT_QUOTES); ?> est déconnecté</span></li>
<?php
}
?>
</ul>
</div>
Donc je sais déjà qu'elle va être la suite des erreurs, ce sont les 3 en gras, la je bloque sur la première, sur l'avatar alors que c'est la même ligne que sur le code précédent qui passait pourtant....
Il me trouve un T_STRING, et si j'arrive a passer cette erreur (simplement en réecrivant la ligne, il arrive sur une erreur "unexpected '{'" sur l'accolade du dessous.
Tout vient à point à qui sait attendre!
AssassinTourist
Messages postés
5710
Date d'inscription
lundi 16 janvier 2012
Statut
Contributeur
Dernière intervention
29 février 2024
1 311
Modifié par AssassinTourist le 16/03/2012 à 19:02
Modifié par AssassinTourist le 16/03/2012 à 19:02
Il retourne une erreur pour ce que tu as mis en gras ? Il laisse passer les autres if( == ) ? C'est toujours la même erreur qu'il affiche ?
Quelle valeur y a-t-il dans $profil['membre_avatar'] ? N'y a-t-il pas des guillemets/parenthèses/autres trucs qui pourraient le gêner lorsqu'il remplace sa valeur ?
Quelle valeur y a-t-il dans $profil['membre_avatar'] ? N'y a-t-il pas des guillemets/parenthèses/autres trucs qui pourraient le gêner lorsqu'il remplace sa valeur ?
Fchaps
Messages postés
120
Date d'inscription
mercredi 23 décembre 2009
Statut
Membre
Dernière intervention
26 décembre 2016
16
16 mars 2012 à 19:21
16 mars 2012 à 19:21
oui il me retourne un T_STRING de puis le début du code, la première était sur celle ci :
/********Gestion avant affichage...***********/
if($_GET['id'] == '')
simplement en le réecrivant, il fini par l'accepter et passer sur :
if($profil['membre_id'] == '' || $id == -1)
idem que pour la précédente, il passe en la réecrivant mais bloque ensuite sur l'accolade ouvrante en dessous en me mettant un unexpected '{'
Mais la le fait de recopier simplement la ligne ne fonctionne pas pour :
if($profil['membre_avatar'] == '')
alors que dans mon code précédent cela finissait par passer, c'est pour cela que je sais qu'une fois cette ligne reglée, il me trouvera les mêmes erreurs sur les deux autres lignes en gras
/********Gestion avant affichage...***********/
if($_GET['id'] == '')
simplement en le réecrivant, il fini par l'accepter et passer sur :
if($profil['membre_id'] == '' || $id == -1)
idem que pour la précédente, il passe en la réecrivant mais bloque ensuite sur l'accolade ouvrante en dessous en me mettant un unexpected '{'
Mais la le fait de recopier simplement la ligne ne fonctionne pas pour :
if($profil['membre_avatar'] == '')
alors que dans mon code précédent cela finissait par passer, c'est pour cela que je sais qu'une fois cette ligne reglée, il me trouvera les mêmes erreurs sur les deux autres lignes en gras
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
graffx
Messages postés
6506
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
24 mars 2019
1 975
16 mars 2012 à 20:28
16 mars 2012 à 20:28
Mails ne manque pas des { et } ?
<?php if($profil['membre_banni'] == 1) echo 'bannis'; else echo 'membres'; ?>
<?php if($profil['membre_banni'] == 1) echo 'bannis'; else echo 'membres'; ?>
Fchaps
Messages postés
120
Date d'inscription
mercredi 23 décembre 2009
Statut
Membre
Dernière intervention
26 décembre 2016
16
16 mars 2012 à 21:48
16 mars 2012 à 21:48
oui d'accord j'avais zappé dans cette ligne, mais ca ne change rien à mon problème qui se trouve plus haut
Fchaps
Messages postés
120
Date d'inscription
mercredi 23 décembre 2009
Statut
Membre
Dernière intervention
26 décembre 2016
16
17 mars 2012 à 00:39
17 mars 2012 à 00:39
la synthaxe est bonne ici
En le réecrivant simplement sans rien changé ca passe
Mais si, quand tu ré-écris tu changes quelque chose.
J'ai essayé ton code et je n'ai aucun unexpected T_SRING ou {
J'ai fortement tendance à penser que ton fichier contient des caractères que tu ne vois pas et qui disparaissent lors de la refrappe. L'as-tu initialement tapé toi-même où l'as-tu récupéré quelque part ?
As-tu un éditeur hexadécimal pour vérifier son contenu réel ?
Mais si, quand tu ré-écris tu changes quelque chose.
J'ai essayé ton code et je n'ai aucun unexpected T_SRING ou {
J'ai fortement tendance à penser que ton fichier contient des caractères que tu ne vois pas et qui disparaissent lors de la refrappe. L'as-tu initialement tapé toi-même où l'as-tu récupéré quelque part ?
As-tu un éditeur hexadécimal pour vérifier son contenu réel ?
Fchaps
Messages postés
120
Date d'inscription
mercredi 23 décembre 2009
Statut
Membre
Dernière intervention
26 décembre 2016
16
17 mars 2012 à 00:58
17 mars 2012 à 00:58
Celui ci oui c'est des bouts de copier coller, je me forme au php, j'ai suivi ce tuto sur le site du zéro, donc les portions qui ne pose pas de problème en lecture je les ai copié au lieu de les retaper.
Editeur héxadécimal? J'édite mon code sur notepad ++ pour la coloration synthaxique c'est tout
Editeur héxadécimal? J'édite mon code sur notepad ++ pour la coloration synthaxique c'est tout
Peux-tu mettre ton source sur cjoint.com (ou un autre) pour que je l'examine avec un éditeur hexadécimal ?
Evidemment, n'oublie pas de cacher les mots de passe s'il y en a
Evidemment, n'oublie pas de cacher les mots de passe s'il y en a
Fchaps
Messages postés
120
Date d'inscription
mercredi 23 décembre 2009
Statut
Membre
Dernière intervention
26 décembre 2016
16
17 mars 2012 à 01:11
17 mars 2012 à 01:11
Ouh la la ! Il est tout pourri ton source. de l'UTF8 avec BOM pour commencer, mais aussi tous les caractères espace ne sont pas des espaces ASCII (code hexa 20) sauf là où tu as retapé. Je regarde plus en détail et je te dis.
Fchaps
Messages postés
120
Date d'inscription
mercredi 23 décembre 2009
Statut
Membre
Dernière intervention
26 décembre 2016
16
17 mars 2012 à 01:22
17 mars 2012 à 01:22
J'ai regardé aussi avec EditHexa, mais alors moi je vois plein de caractères A avec accent et des fois c'est des points, les deux sont censés etre des espace il me semble, mais bon j'y connais rien la dessus dans l'encodage, utf-8, voilà ca s'arrête là pour moi :/
Tiens je l'ai nettoyé
http://www.toofiles.com/fr/oip/documents/php/861_user.html
N'oublie pas de préciser à NotePad++ que tu veux travailler SANS BOM. Le BOM empêche de marcher les sessions et autres headers.
Les codes C2 A0 que tu voyais correspondaient à des espaces insécables qui ne plaisent sûrement pas à PHP
Pour travailler sans BOM voir menu Format de Notepad ++
http://www.toofiles.com/fr/oip/documents/php/861_user.html
N'oublie pas de préciser à NotePad++ que tu veux travailler SANS BOM. Le BOM empêche de marcher les sessions et autres headers.
Les codes C2 A0 que tu voyais correspondaient à des espaces insécables qui ne plaisent sûrement pas à PHP
Pour travailler sans BOM voir menu Format de Notepad ++
Fchaps
Messages postés
120
Date d'inscription
mercredi 23 décembre 2009
Statut
Membre
Dernière intervention
26 décembre 2016
16
17 mars 2012 à 01:37
17 mars 2012 à 01:37
Oh un grand merci ca marche nickel ;)
Fchaps
Messages postés
120
Date d'inscription
mercredi 23 décembre 2009
Statut
Membre
Dernière intervention
26 décembre 2016
16
17 mars 2012 à 01:41
17 mars 2012 à 01:41
Du coup je vais garder l'editeur hexadecimal au cas ou certains de mes fichiers auraient besoin d'être nettoyé également.
Encore merci et bonne nuit ;)
Encore merci et bonne nuit ;)