Page 1 sur 1

Probleme affichage d1 lien commentaire sur news

Posté : 28 juil. 2006, 15:31
par Morkem
Bonjour a tous,
j'ai ici un code qui fonctionne parfaitement SAUF pour afficher le liens de commentaires...
function news($data)
{
global $bgcolor1, $bgcolor2, $bgcolor3, $bgcolor4;
$comment = "<a href=\"index.php?file=News&op=index_comment&news_id=" . $data['id'] . "\">" . _NEWSCOMMENT . "</a>&nbsp;(" . $data['nb_comment'] . ");
?>
echo' <br><table width="97%" border="0" align="center" valign="top" cellpadding="3" cellspacing="0" bgcolor="#FFFFFF">
<tr>
<td width="10%" align="left" valign="middle">'.$data[image].'</td>
<td width="60%" valign="top"><img src="themes/new/image/puce.jpg">&nbsp;<b>'.$data[titre].' :: '.$data[auteur].'</b></td>
<td width="30%" align="right" valign="top">'.$data[date].'&nbsp;'._AT.'&nbsp;'.$data[heure].'</div></td></tr>
<tr><td width="10%">&nbsp;</td><td width="90%" colspan="2">'.$data[texte].'</td></tr>
<tr><td colspan="3" align="right">'.$comment.'</td>
</tr></table>';
} 

Et j'ai une erreur : Parse error: syntax error, unexpected T_LNUMBER in /home.2/pzykoz/www/cs/themes/new/theme.php on line 21

Ps: la ligne 21 correspond pas j'ai tronqué le debut.

edit : dsl j'avais fai une erreur

Posté : 28 juil. 2006, 15:40
par ouckileou
Ce type d'erreur (unexpected t_number..) apparait lorsqu'un élément (nombre, variable, texte) est trouvé alors que PHP attendait autre chose.

C'est typiquement un problème de chaîne mal fermée, de variable mal placée, ici il manque un guillemet quelque part.
Reprend tes chaines depuis le début et regarde bien ;)

On le voit assez bien avec la coloration syntaxique

On verra ensuite pour l'autre problème

Posté : 28 juil. 2006, 15:46
par Morkem
function news($data)
{
global $bgcolor1, $bgcolor2, $bgcolor3, $bgcolor4;
$comment = <a href=\"index.php?file=News&op=index_comment&news_id=" . $data['id'] . "\">" . _NEWSCOMMENT . "</a>&nbsp;(" . $data['nb_comment'] . ");

echo' <br><table width="97%" border="0" align="center" valign="top" cellpadding="3" cellspacing="0" bgcolor="#FFFFFF">
<tr>
<td width="10%" align="left" valign="middle">'.$data[image].'</td>
<td width="60%" valign="top"><img src="themes/new/image/puce.jpg">&nbsp;<b>'.$data[titre].' :: '.$data[auteur].'</b></td>
<td width="30%" align="right" valign="top">'.$data[date].'&nbsp;'._AT.'&nbsp;'.$data[heure].'</div></td></tr>
<tr><td width="10%">&nbsp;</td><td width="90%" colspan="2">'.$data[texte].'</td></tr>
<tr><td colspan="3" align="right">'.$comment.'</td>
</tr></table>';
}
Exact merci

Maintenant j'ai ca : Parse error: syntax error, unexpected '<' in /home.2/pzykoz/www/cs/themes/new/theme.php on line 19
comme tu l'avais dit :s

Posté : 28 juil. 2006, 15:57
par ouckileou
Même chose, le problème n'est pas résolu

Problème sur cette ligne : $comment =...

Il faudrait aussi que tu édites le titre du sujet qui n'est pas très parlant

Posté : 28 juil. 2006, 16:12
par Morkem
En fait c'est pour afficher un lien Commentaires
$comment = <a href="index.php?file=News&op=index_comment&news_id=" . $data['id'] . "\">" . _NEWSCOMMENT . "</a>

avec le nombre de commentaire a coté (0)
(" . $data['nb_comment'] . ")
Mais visiblement j'ai raté un truc

Posté : 28 juil. 2006, 16:25
par ouckileou
Oui oui j'ai bien compris, mais le problème n'est pas là

L'erreur est pourtant explicite : "<" inattendu
C'est donc qu'il y a un "<" qui est mal placé, c'est un caractère qui devrait être dans une chaîne et a priori il ne l'est pas.

Regarde bien cette ligne, c'est une bête faute de syntaxe :
$comment = <a href="index.php?file=News&op=index_comment&news_id=" . $data['id'] . "\">" . _NEWSCOMMENT . "</a>
Il n'y a rien qui te choque ? Reprend la lettre par lettre depuis le début :D

Erreur de syntaxe, c'est souvent une histoire de guillemet ;)

Posté : 28 juil. 2006, 16:43
par Morkem
Ba ecoute je vois pas trop....

Un lien est de la forme
<a href="le_lien">le_nom_du_lien</a>

Je rajoute donc le lien
<a href="index.php?file=News&op=index_comment&news_id=1">le_nom_du_lien</a>

Je rajoute la fonction pour trouver l'id de la news
<a href="index.php?file=News&op=index_comment&news_id=" . $data['id'] . "">le_nom_du_lien</a>

Comme il y a 2 guillemets je rajoute un \
<a href="index.php?file=News&op=index_comment&news_id=" . $data['id'] . "\">le_nom_du_lien</a>

Et enfin je change le nom du lien par la fonction
<a href="index.php?file=News&op=index_comment&news_id=" . $data['id'] . "\">" . _NEWSCOMMENT . "</a>

Devant je claque la fonction de rappel pour la rappeler plus tard
$comment = <a href="index.php?file=News&op=index_comment&news_id=" . $data['id'] . "\">" . _NEWSCOMMENT . "</a>

Et vala :(

Posté : 28 juil. 2006, 16:48
par ouckileou
Ta ligne :
$comment = <a href="index.php?file=News&op=index_comment&news_id=" . $data['id'] . "\">" . _NEWSCOMMENT . "</a>&nbsp;(" . $data['nb_comment'] . "); 
Ma ligne :
$comment = "<a href=\"index.php?file=News&op=index_comment&news_id=" . $data['id'] . "\">" . _NEWSCOMMENT . "</a>&nbsp;(" . $data['nb_comment'] . ")";
La chaîne n'était pas ouverte avant le "<a", ce qui fait que le " devant index était considéré comme guillemet ouvrant. D'où le "<" innatendu puisqu'il se baladait à l'extérieur de la chaîne et donc PHP ne comprenait pas ce qu'il faisait ici.
La chaîne n'était pas fermée après la )

Posté : 28 juil. 2006, 16:52
par Morkem
Arf c'etais juste qu'il n'etait pas fermé... merci beaucoups ca fonctionne ;)