[PHP] Isset et $_POST

anonyme26 -  
 anonyme26 -
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

anonyme26
 
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   Statut Membre Dernière intervention   1 768
 
Bonjour,

Vous êtes sûr de bien récupérer une valeur correcte?
Que vient faire le ! avant le isset ?
0
anonyme26
 
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   Statut Membre Dernière intervention   1 768
 
if(!empty($_POST['export'])) {
echo "ok"; 
}

ça pourrait passer ?
0

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

Posez votre question
Utilisateur anonyme
 
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
anonyme26
 
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
 
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
 
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
anonyme26
 
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
 
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
 
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
anonyme26
 
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
Utilisateur anonyme
 
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
anonyme26
 
C'est bon j'ai trouvé.

L'ouverture de ma balise php

<? devient <?php

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