[PHP] Isset et $_POST

Fermé
anonyme26 - 3 juil. 2012 à 10:12
 anonyme26 - 3 juil. 2012 à 12:05
Bonjour,

Je me permets de consulter la communauté car j'ai un petit souci sur l'un de mes tests en php.

En effet jusqu'à maintenant j'utilisai la ligne de code suivante comme condition :

if (!isset($_POST['export'])) {
echo "ok";
}

J'ai mis à jour mon EasyPhp et depuis cette ligne me génère une erreur "parse error" sans plus d'indication. Après des recherches sur le net je n'ai rien trouvé de concret.

Configuration EasyPhp :
Apache 2.2.11
Php 5.2.8
Mysql 5.1.30

Merci pour votre aide.





A voir également:

13 réponses

Voilà un bout de code :

	}
	
	// Filtre 
	if (isset($_POST['rech_dossier_solde'])) {
		$_SESSION['rech_dossier_solde'] =  "true";
	}
	else {
		$_SESSION['rech_dossier_solde'] =  "false";
	}
	
	
}

// Gestion de l'espace de saisie
if (!isset($_POST['export'])) {
	if (isset($_SESSION['rech_active']) OR RECH_ACT == 'Oui') {
		echo '<div id="popup_cherche" style="display:block;">';
	} else {
		echo '<div id="popup_cherche" style="display:none;">';
	} ?>



Je tiens quand même à préciser qu'avant ma mise à jour d'EasyPhp ce bout de code fonctionnait ...
1
lionel-DIL Messages postés 1222 Date d'inscription lundi 25 juin 2012 Statut Membre Dernière intervention 7 août 2014 1 767
3 juil. 2012 à 10:22
Bonjour,

Vous êtes sûr de bien récupérer une valeur correcte?
Que vient faire le ! avant le isset ?
0
Bonjour,

Merci pour votre réponse.
En faite cette ligne de commande me sert à vérifier que la variable $_POST['export'] n'existe pas d'où l'utilisation du "!" devant le isset
0
lionel-DIL Messages postés 1222 Date d'inscription lundi 25 juin 2012 Statut Membre Dernière intervention 7 août 2014 1 767
3 juil. 2012 à 10:36
if(!empty($_POST['export'])) {
echo "ok"; 
}

ça pourrait passer ?
0

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

Posez votre question
Bonjour

Ta ligne semble correcte. Elle affiche ok s'il te manque une variable, mais ceci ne cause pas de parse error
il ne manquerait pas un ; à la fin de la ligne précédente ?

cette ligne me génère une erreur "parse error" sans plus d'indication
Les messages d'erreur de PHP sont plus longs que ça, peux-tu recopier le message en entier ?
0
Je ne pense pas car ma variable $_POST['export'] est susceptible de ne pas exister.

En faite je cherche un moyen de tester si la variable $_POST['export'] existe
0
Utilisateur anonyme
3 juil. 2012 à 11:00
empty passerait, aussi, mais tu ne distinguerais pas le cas d'une variable vide, ou qui contient 0, du cas d'une variable inexistante.
Et dans tous les cas, ce n'est pas ce qui crée une parse error.
Recopie ici un bout de ton code, disons depuis 5 lignes avant celle où à lieu l'erreur
0
Utilisateur anonyme
3 juil. 2012 à 11:08
Peux-tu recopier le message d'erreur complet, y compris le nom de fichier et le numéro de ligne de l'erreur, et nous dire à quelle ligne ça correspond ?
0
Parse error: parse error in C:\dev_internet\www\test\includes\recherche_dossier.php on line 328

La ligne 328 correspond à la fermeture de ma condition
if (!isset($_POST['export'])) {
.....
....
....
....
....
} // ligne 328

Si je commente la les lignes "if (!isset($_POST['export'])) {" et "} // ligne 328" je n'ai plus le msg d'erreur
0
Utilisateur anonyme
3 juil. 2012 à 11:15
Si la ligne de l'erreur est celle de la fermeture de ta condition, donne le code des quelques lignes qui précèdent et suivent cette fermeture
0
Utilisateur anonyme
3 juil. 2012 à 11:17
Au passage, une accolade ne ferme pas une condition mais une autre accolade. Les accolades ne font pas partie de la syntaxe de l'instruction if.
0
Voilà le bout de code

						<td style="text-align:right;padding-left:15px;">
						
							<?php echo TEXT_RECHERCHE_SITUATION;?>
							<select name='rech_situdoss' onChange='this.form.submit();' style="width:100">
								<option value=''></option>
							<?php 
								$result_situdoss = db_query("SELECT code_situ, libelle FROM ".TABLE_SITUDOSS);
								while ($row = db_fetch_array($result_situdoss)) {
								 ?>
									<option <?php echo ($_SESSION['rech_situdoss'] == $row['code_situ'])? "selected='selected'":"";  ?> value='<?php echo $row['code_situ'];?>'><?php echo $row['libelle'];?></option>
							<?php }?>
							</select>
						</td>
						
					</tr>
					<tr>
						<td colspan="4"></td>
					</tr>
				</table>
			</form>
	</td>
</tr>
 <?
} 
?> // ligne 328 et fin de fichier

0
Donc finalement, ton erreur a lieu à la fin du fichier ! En voilà un détail intéressant. Tu es un petit cachottier toi, tu aurais pu le préciser.

Tu es sûr qu'il n'y a rien d'autre dans le message d'erreur ? genre 'unexpected end' ?
Il y a très probablement un problème d'accolades, Il va falloir mettre le script complet. Mets-le plutôt en pièce jointe (par exemple Cjoint.com) et recopie le lien ici. N'oublie pas de cacher tes mots de passe et autres identifiants.
0
C'est bon j'ai trouvé.

L'ouverture de ma balise php

<? devient <?php

Et voilà. En tout cas merci pour votre aide.
0