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

Mysterious_fea Messages postés 406 Statut Membre -  
Mysterious_fea Messages postés 406 Statut Membre -
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 146 Statut Membre 17
 
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 406 Statut Membre 35
 
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