Erreur introuvable ??

Eléphant du PHP | 169 Messages

19 sept. 2007, 14:31

Bonjour,
je rencontre cette erreur "Parse error: syntax error, unexpected T_ELSEIF......". et je n'arrive pas a trouver l'erreur dans le code. voila 3h que je me penche dessus :cry:

j'ai compté le nombre de "{" - "}" - "(" - ")" pour voir si j'avais un nombre impaire. mais tout est correcte.

Pourriez m'aider ? merci de votre participation

je mets ci dessous la partie de code ou est généré l'erreur, (ligne 91 = elseif).
A titre d'info, mon code contient 250 lignes
<?php
		// SINON SI LA VARIABLE EXISTE
		elseif (isset($_GET['supprimer']))
			{ 
				// Réuperation des variables
					$supprimer = $_GET['supprimer'];
				
				// creation d'une variable qui demande d'inserer les donn&eacute;e dans la BD 
					$sql = "DELETE FROM categorie WHERE id_categorie=".$supprimer;
					$requete = mysql_query ($sql) or die ('Suppression impossible : <br />'.mysql_error());
			
			?>
--
Kweb

Eléphanteau du PHP | 18 Messages

19 sept. 2007, 14:39

montre nous le code du if au elseif.
Unexcepted T_ELSEIF veut dire qu'il ne s'attendait pas à un elseif ici...

Eléphant du PHP | 169 Messages

19 sept. 2007, 14:46

Voici le code (désolé mais il fais un peux plus de 20 lignes..)
<?php if (isset($_GET['confirmation']))
	{
		// Réuperation des variables
			$nom_categorie = $_POST['Nom']; 
		
		// creation d'une variable qui demande d'inserer les donnée dans la BD 
			$sql = "INSERT INTO categorie VALUES ('','$nom_categorie')";
		
		//  requéte SQL
			$sql2 = mysql_query ($sql) or die ('Ex&eacute;cution de la requ&ecirc;tes impossible : <br />'.mysql_error()); 
?>
		<!-- AFFICHE la confirmation d'insertion et affiche le formulaire pour soumettre + affiche toutes les catégorie existante  -->
			L'insertion de la nouvelle cat&eacute;gorie, c'est bien effectu&eacute;
			<br />
			<form id="form1" name="form1" method="post" action="index2.php?confirmation">
				<label>
					<strong>Nom :</strong>
					<input name="Nom" type="text" id="Nom" size="50" />
				</label>&nbsp;
				<label>
					<input type="submit" name="button" id="button" value="Cr&eacute;er" />
				</label>
			</form>
			  <br /><br />
			  <strong>Liste des cat&eacute;gories existante :</strong><br />

		<?php
		//ON AFFICHE LE TABLEAU QUI VAS LISTER TOUTES LES CATÉGORIE EXISTANTE
			//Appel de la function
			include ('function/alternance_couleur.func.php');	

			// Cr&eacute;ation d'un tableau
				echo '<table  border="0" cellspacing="1" cellpadding="0">';

			// CREATION d'une Ligne 1
				echo '<tr>';

			//CREATION de Cellule fixe
				//echo '<td width="18">&nbsp;</td>';
				echo '<td colspan="3" bgcolor="#FFCC66">&nbsp;<strong>CATEGORIES EXISTANTES<strong></td>';
				//echo '<td width="150" bgcolor="#DFE6E6" <strong>NOM DES CATEGORIES</strong></td>';

			// FIN de la ligne 1
				echo "</tr>";

			// SELECTIONNER tous les champs de la table email par domaine_email qui est &eacute;gale a
				$affichage = "SELECT * FROM categorie ORDER BY txt_categorie";
				$affichage_retour =  mysql_query($affichage) or die (mysql_error());
				
				while ($ligne = mysql_fetch_array($affichage_retour))
					{
						// CREATION d'une Ligne 2
						echo "<tr bgcolor=\""; echo switchcolor(); echo "\">";

						//Cellule SUPPRIMER
						echo '<td bgcolor="#FFFFFF" width="18">';
						echo '<a href="ip.php?supprimer='.$ligne['id_categorie'].'"><img src="../images/corbeille.gif" alt="Supprimer" width="14" height="16" border="0"></a>';
						echo '</td>';

						//Cellule MODIFICATION
						echo '<td bgcolor="#FFFFFF" width="20">';
						echo '<a href="ip_modifier.php?modifier='.$ligne['id_categorie'].'"><img src="../images/modifier.gif" alt="Modifier" width="16" height="16" border="0"></a>';
						echo '</td>';

						//Cellule CATEGORIE
						echo '<td id="tableau_email" width="200">';
						echo '<strong>'.ucfirst($ligne['txt_categorie']).'</strong>' ;
						echo '</td>';

						//FIN de la ligne 2
						echo '</tr>';
					}
				//FIN du tableau
				echo '</table><br /><br /><br />';

	}	?>
--
Kweb

Eléphanteau du PHP | 18 Messages

19 sept. 2007, 14:55

par hasard, essaye d'enlever les ?> <?php qui sont juste avant le elseif (on ne sait jamais, sinon en effet les { } ont l'air correctes)

autre chose: fais TRES attention à ce code :
     $supprimer = $_GET['supprimer'];
     $sql = "DELETE FROM categorie WHERE id_categorie=".$supprimer;
C'est une vulnérabilité qu'on appelle SQL Injection. En gros, en mettant un morceau de requête dans $_GET['supprimer'], on peut exécuter des requêtes dans ta base...
Vérifie, au minimum, que $_GET['supprimer'] est bien un nombre (is_numeric($_GET['supprimer'])

Eléphant du PHP | 169 Messages

19 sept. 2007, 15:03

Effectivement, lorsque je supprime les "<php?" et "?>" cela fonctionne.

Pour que des conditions fonctionnent il faut qu'elles soit imbriquées dans la même balise php ?

Concernant le problème de sécurité, je garde sa en mémoire. Mais ce que je dévellope est pour un intranet. donc la sécurité n'est pas le point fort.

Encore merci pour ton aide
--
Kweb

Eléphanteau du PHP | 18 Messages

19 sept. 2007, 15:17

je pense plutot que le elseif doit directement suivre le } ...

pense au tag [résolu], ça fera plaisir aux modos ;)

Eléphant du PHP | 169 Messages

19 sept. 2007, 15:19

J'attendais juste que tu me réponde....
merci @+
--
Kweb