[PHP] syntax error, unexpected }

Résolu
Evan -  
 vever -
Bonjour tous le monde!!

Mon probleme est le suivant :
Je suis passer de la version easyphp 1.6 -> à la version 5.3.2i (n_n)'

En gros :
Avant, pas de problème.
Maintenant j'ai sa :
PHP syntax error, unexpected }


J'ai bien verifier, je ne comprend pas pourtant j'ouvre et ferme bien l'ensemble de mes conditions.

Mon code fait à peu près 23000 lignes mais voici le bout qui plante :
if(isset($_POST['Montrer_Requete']))
{
		print'<input type="submit" name="Nouvelle_recherche_avancee" id="NRA" style="display:none">';
	$controle=@mysql_query('SELECT PER_MATRICULE FROM personnel WHERE PER_LOGIN="' .$_COOKIE['LOGIN']. '" AND PER_MDP="' .$_COOKIE['MDP']. '"');
	$DATA1 = mysql_fetch_array($controle);
	$desc_requ = mysql_query('DESCRIBE requete');
	//On prend toutes les requetes qu'a enregistrer l'utilisateur
	$affichage_requete=mysql_query('SELECT * FROM requete WHERE PER_MATRICULE = "'.$DATA1['PER_MATRICULE'].'" ORDER BY NUM_REQU;');
	if(@mysql_numrows($affichage_requete)!=0)
	{
	print'</br></br><div class="td_bleu"><font face="arial" color="#000066" size="3" ><b>Gestion des requetes</b></font></div>';
	
	$i=0;
	for($ligne=0;$ligne<mysql_numrows($affichage_requete);$ligne++)
	{
		//On place les boutons de suppression en fonction des id et on ajoute un bouton de selection de ligne seul
		if($i==$ligne || $i==0)
		{ 
			if($ligne!=0)
			{
				print'</table>';
			}
			print'</br><table border="1" cellspacing="0" cellpadding="0" width="auto" style="border: 0.5px;">';
			print'<tr><td></td><td></td><td class="td_bleu"><font face="arial" color="#000066" size="1" >&nbsp;Groupe&nbsp;</font></td><td class="td_bleu"><font face="arial" color="#000066" size="1" >&nbsp;Ligne&nbsp;</font></td><td class="td_bleu"><font face="arial" color="#000066" size="1" >&nbsp;Num groupe&nbsp;</font></td><td class="td_bleu"><font face="arial" color="#000066" size="1" >&nbsp;Module&nbsp;</font></td><td class="td_bleu"><font face="arial" color="#000066" size="1" >&nbsp;Et / Ou&nbsp;</font></td><td class="td_bleu"><font face="arial" color="#000066" size="1" >&nbsp;Champ&nbsp;</font></td><td class="td_bleu"><font face="arial" color="#000066" size="1" >&nbsp;Opération&nbsp;</font></td><td class="td_bleu"><font face="arial" color="#000066" size="1" >&nbsp;Mot clé&nbsp;</font></td></tr>';
		}
															            // ligne  _                  Id                           _           NumGroupe                                                                                       plus_                 ID                            _       Num_groupe
			print'<tr><td><div onclick="supp_requ(this)" class="supp" id="'.$ligne.'_'.mysql_result($affichage_requete, $ligne, 0).'_'.mysql_result($affichage_requete, $ligne, 1).'"></div></td><td><div class="plus" onclick="plus(this)" id="plus_'.mysql_result($affichage_requete, $ligne, 0).'_'.mysql_result($affichage_requete, $ligne, 1).'_'.$ligne.'"></div></td>';


		if($i==$ligne || $i==0)
		{
			$i=$ligne;
			while(mysql_result($affichage_requete, $ligne, 1)==@mysql_result($affichage_requete, $i, 1))
			{
				$i++;
			}
			$i=$i-$ligne;
			//On regroupe par module les ligne du tableau pour pouvoir selectionner une requete complete
			print'<td class="td_white" rowspan="'.$i.'"><div class="panier" onclick="panier(this)" id="panier_'.mysql_result($affichage_requete, $ligne, 1).'"></div></td>';
			$i=$i+$ligne;
		}
		//On affiche les donnée a titre de visu
		$ligneplus = $ligne+1;
		print'<td class="td_white"><font face="arial" size="-2" >&nbsp;'.$ligneplus .'&nbsp;</font></td><td class="td_white"><font face="arial" size="-2" >&nbsp;'.mysql_result($affichage_requete, $ligne, 1) .'&nbsp;</font></td>';
		for($colonne=3;$colonne<mysql_numrows($desc_requ);$colonne++)
		{
			print'<td class="td_white"><font face="arial" size="-2" >&nbsp;'.mysql_result($affichage_requete, $ligne, $colonne).'&nbsp;</font></td>';
		}
		print'</tr>';
	}
	


	?>
	
	
		<script language="javascript">
		function supp_requ(objet)
		{
			//on recupere la ligne et l'id a supprimer
			var valeur=objet.id;
			var decomp = valeur.split('_');
			//on recupère le html de la div suppression contenant tous les id à supprimer
			var div = document.getElementById('suppression').innerHTML;
			//on enregistre l'id pour le supprimer apres validation de l'utilisateur
			var ligne= decomp[0];
			ligne ++;
	//			alert('<input type="hidden" name="Requ_A_Supp_'+ decomp[1] +'" value="'+ decomp[1] +'"><font face="arial" size="-2" > La ligne '+ ligne +' sera supprimer. </font>');
		
			var divSuppression = document.getElementById('suppression').innerHTML = div + '<input type="hidden" name="Requ_A_Supp_'+ decomp[1] +'" value="'+ decomp[1] +'"><font face="arial" size="-2" > La ligne '+ ligne +' sera supprimer. </font><br>';
			//on enleve le bouton supprimer de cette ligne
			objet.style.display = 'none';
			objet.id= "";
		}
		</script>
		<script language="javascript">
		function panier(objet)
		{
			var valeur=objet.id;
			var decomp = valeur.split('_');
			var div = document.getElementById('choix').innerHTML;
			var divchoix = document.getElementById('choix').innerHTML = div + '<input type="hidden" name="Group_'+ decomp[1] +'" value="'+ decomp[1] +'"><font face="arial" size="-2" > Le groupe '+ decomp[1] +' est ajouter à la recherche. </font><br>';
			objet.style.display = 'none';
			objet.id= "";
		}
		</script>
		<script language="javascript">
		function plus(objet)
		{
			
			var valeur=objet.id;
			var decomp = valeur.split('_');
			var div = document.getElementById('choix').innerHTML;
			var ligne= decomp[3];
			ligne ++;
			var divchoix = document.getElementById('choix').innerHTML = div + '<input type="hidden" name="plus_'+ decomp[1] +'" value="'+ decomp[1] +'"><font face="arial" size="-2" > Le ligne '+ ligne +' est ajouter à la recherche. </font><br>';
			objet.style.display = 'none';
			objet.id= "";
			
		}
		</script>
		<?php
	}
	else
	{
		
			print'<script>alert("Vous n\'avez aucune recherche enregistrée.\nVous allez être rediriger sur une < Nouvelle recherche >.")</script>';
			
				?>
			<script language="javascript">
				document.getElementById('NRA').click();
			</script>
			<?php	
	}

	print'<br>';
	print'</table></br></br><div id="choix"><div id="suppression"></div></div><br><br>';

               ///////////////////////////////////////////
}             // <-- C'est ici que sa plante           //
             /////////////////////////////////////////// 



Merci pour votre aide.


A voir également:

9 réponses

Breub62 Messages postés 2989 Date d'inscription   Statut Membre Dernière intervention   369
 
Possible même si je trouve ça bizarre. Tu peux toujours tenter de regrouper toutes tes fonctions js en début de page mais garder tes appels à l'endroit où ils sont.
1
Evan
 
Bon enfaite il y avait un <? au lieu de <?php un tout petit peu plus haut =/. Donc sous 1.6 pas de soucie mais sous 5.3.2 bonjour les degats.
1
Defouille Messages postés 388 Date d'inscription   Statut Membre Dernière intervention   54
 
Tu dois pouvoir modifier ça dans le fichier de conf
0
Evan
 
Ne t'inquète pas ça devait être le seul du programme. Et dire que j'ai penser un instant que l'interpreteur ne fonctionne pas correctement =)
0
Defouille Messages postés 388 Date d'inscription   Statut Membre Dernière intervention   54
 
Hérésie !
0
vever
 
Oh yeah ! J'avais le même souci que toi, j'ai bien fait de faire ce que je ne fais jamais : lire les posts qui n'ont pas été "plussoyés" ! Merci tu viens de me faire gagner une journée et une Licence Pro ! =D
0
Breub62 Messages postés 2989 Date d'inscription   Statut Membre Dernière intervention   369
 
Unexpected } signifie que } est en trop mais ça n'as pas l'air d'être le cas ici. Est-ce que tu as quelque chose avant ou après ce que tu as noté?
0
Evan
 
Oui tout à fait mais impossible de tout te montrer =/
Sa fait 23000 lignes tous sa.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Defouille Messages postés 388 Date d'inscription   Statut Membre Dernière intervention   54
 
C'est peut être un détail mais je vois que tout tes "print" son collés aux "'", peut être que la nouvelle version de easyphp n'accepte pas cette syntaxe et préfère "print '".

Enfin c'est surement un détail '(-.-)
0
Evan
 
Je vien d'essayer, ce n'est pas ça. Mais bonne idée quand même. ^_^

Je pense que je vai rester sur 1.6 ;)
0
Evan
 
Je vien de remarquer qu'en supprimant les scripts Javascirpt l'erreur PHP n'y est plus.

J'en conclue que l'interpreteur ce goure avec les crochés de mes fonctions...

Qu'en pensez vous?
0
Defouille Messages postés 388 Date d'inscription   Statut Membre Dernière intervention   54
 
C'est pas impossible.

Si ça te dérange tu peux modifier ton code php, pour l'adapter à une syntaxe sans accolades, cela existe en php :
https://www.php.net/manual/en/control-structures.alternative-syntax.php

avec quelque chose comme ça :
<?php if ($a == 5): ?>
A is equal to 5
<?php endif; ?>


tu peux éviter tes accolades :)
0
Breub62 Messages postés 2989 Date d'inscription   Statut Membre Dernière intervention   369
 
Je ne connaissais pas mais ça me semble bien pourris, on dirais du visual basic...
0
Defouille Messages postés 388 Date d'inscription   Statut Membre Dernière intervention   54
 
Ca c'est sur que c'est pourrit, enfin ça peut être pratique dans du html généré, pour te retrouver dans tes accolades :), au lieu de mettre des commentaires apres ton accolade tu le fais de cette façon ^^
0
Evan
 
J'ai mis les scripts en haut mais il semblerais que ce n'est même pas sa qui fait buger, mais plutot la répétion des
<?php   ?>


A en juger par sa :

NE BUG PAS
print ' 
   <script language="Javascript"> 
   alert("Vous n\'avez aucune recherche enregistrée.\nVous allez être rediriger sur une < Nouvelle recherche >."); 
   document.getElementById(\'NRA\').click(); 
   </script> 
    
   ';

BUG
print'<script>alert("Vous n\'avez aucune recherche enregistrée.\nVous allez être rediriger sur une < Nouvelle recherche >.")</script>'; 
    
    ?> 
   <script language="javascript"> 
    document.getElementById('NRA').click(); 
   </script> 
   <?php 



Je vai tenter ta methode Defouille

Merci pour toute vos réponses!!!
Problème Résolue !!
0