Parse error: syntax error: manque de mémoire?

Fermé
Mysterious_fea Messages postés 401 Date d'inscription vendredi 29 juin 2007 Statut Membre Dernière intervention 23 mars 2013 - 18 août 2009 à 15:18
Mysterious_fea Messages postés 401 Date d'inscription vendredi 29 juin 2007 Statut Membre Dernière intervention 23 mars 2013 - 18 août 2009 à 16:01
Bonjour,
Je suis sous Drupal et je programme des Templates en PHP qui utilisent des champs de la base de donnée (pour info j'utilise Contemplate).

J'ai un gros morceau de code avec des conditions.
C'est la fin de mon code qui beugue : j'ai 16 blocs quasiment identiques (seul change le nom du champ, mais la structure PHP et HTML est la même).
Voilà la structure (je vous ai allégé le HTML) d'un bloc :
print '<fieldset><legend><a name="sp"></a>Services publics :</legend>
<div style="width:46%; float:left; clear:both;text-align:center;"><h3>Promesses de campagne :</h3></div>
<div style="width:46%; float:right; text-align:center;"><h3>R&eacute;alisations de mandat :</h3></div>';
if((isset($node->field_sp_municipal[0]['value']))OR(isset($node->field_sp2_municipal[0]['value']))) print '<div style="clear:both; text-align:center;"><fieldset>'.$node->field_sp_municipal[0]['value'].'</fieldset><fieldset>'.$node->field_sp2_municipal[0]['value'].'</fieldset>';
if((isset($node->field_sp_municipal[1]['value']))OR(isset($node->field_sp2_municipal[1]['value']))) print '<div style="clear:both; text-align:center;"><fieldset>'.$node->field_sp_municipal[1]['value'].'</fieldset><fieldset>'.$node->field_sp2_municipal[1]['value'].'</fieldset>';
if((isset($node->field_sp_municipal[2]['value']))OR(isset($node->field_sp2_municipal[2]['value']))) print '<div style="clear:both; text-align:center;"><fieldset>'.$node->field_sp_municipal[2]['value'].'</fieldset><fieldset>'.$node->field_sp2_municipal[2]['value'].'</fieldset>';
if((isset($node->field_sp_municipal[3]['value']))OR(isset($node->field_sp2_municipal[3]['value']))) print '<div style="clear:both; text-align:center;"><fieldset>'.$node->field_sp_municipal[3]['value'].'</fieldset><fieldset>'.$node->field_sp2_municipal[3]['value'].'</fieldset>';
if((isset($node->field_sp_municipal[4]['value']))OR(isset($node->field_sp2_municipal[4]['value']))) print '<div style="clear:both; text-align:center;"><fieldset>'.$node->field_sp_municipal[4]['value'].'</fieldset><fieldset>'.$node->field_sp2_municipal[4]['value'].'</fieldset>';
if((isset($node->field_sp_municipal[5]['value']))OR(isset($node->field_sp2_municipal[5]['value']))) print '<div style="clear:both; text-align:center;"><fieldset>'.$node->field_sp_municipal[5]['value'].'</fieldset><fieldset>'.$node->field_sp2_municipal[5]['value'].'</fieldset>';
print '</fieldset>';

Jusqu'à 13 blocs, tout fonctionne, tout s'affiche. Mais dès que j'ajoute le 14ème bloc, j'ai l'erreur :
Parse error: syntax error, unexpected $end, expecting ',' or ')' in /var/www/vhosts/???.fr/httpdocs/modules/contemplate/contemplate.module(851) : eval()'d code on line 323

L'erreur ne vient pas du bloc en lui-même (j'ai essayé d'interchanger les blocs, en mettant un qui marchait en 14ème et le 14ème dans les 14 premiers, et l'erreur persiste. Par ailleurs, si je rajoute une couche de PHP au-dessus de ces blocs, ça me réduit le nombre de blocs qui marchent à 11.
J'en ai donc conclu que le serveur PHP devait "saturer" au bout d'un moment, et que l'erreur de syntaxe qu'il m'affiche n'a rien à voir avec le vrai problème.
J'ai essayé de ferme le "?>" et de rouvrir un "<?php", mais l'erreur persiste.
D'où cela peut-il venir ? Comment y remédier ?
Merci !

2 réponses

mouf13 Messages postés 142 Date d'inscription mardi 20 juin 2006 Statut Membre Dernière intervention 22 février 2011 17
18 août 2009 à 15:32
parse erreur = erreur de syntaxe verifie que tu n'ai pas oublié un ; ou qque chose comme çà, en tout cas aucun lien avec un pb de mémoire.
0
Mysterious_fea Messages postés 401 Date d'inscription vendredi 29 juin 2007 Statut Membre Dernière intervention 23 mars 2013 35
18 août 2009 à 16:01
C'est ce que je croyais, mais non...
Un bloc qui fonctionne bien quand il n'y a que 13 blocs ne fonctionne plus quand on lui en rajoute un autre avant.
Et un code qui me donne une erreur de syntaxe se met soudain à marcher quand j'allège la quantité de PHP qui se situe au début du code, avant les blocs dont je parle.
0