le 19 Juin participez à Drupagora

Mettre le ISSET($_POST[]) dans une variable

Lolo509
Invité n'ayant pas de compte PHPfrance

14 Fév 2008, 21:41

Bonjour,

Voici mon problème : je n'arrive pas à stocker une condition avec le isset d'un $_POST dans une variable.


Ce code fonctionne :
[php]
if(isset($_POST['Field']))
{
...
}
[/php]

Celui-ci ne fonctionne pas :
[php]
$isset = 'isset($_POST[\'Field\'])';
if($isset)
{
...
}
[/php]

Est-ce normal et y a t'il un moyen de contourner le problème ?
Le but est d'utiliser une variable pour automatiser la condition

Merci

Lolo509
Invité n'ayant pas de compte PHPfrance

14 Fév 2008, 21:54

Je crois que c'est le $_POST[] qui n'aime pas être mis dans une variable (ça ne pose pas le problème si je je met juste le contenu du $_POST[] dans une variable

Ce code fonctionne :

[php]
$post = '\'Field\'';
if(isset($_POST[post]))
{
...
}
[/php]

Avatar de l’utilisateur
Modérateur PHPfrance
Modérateur PHPfrance | 7637 Messages

14 Fév 2008, 21:58

Lolo509 a écrit :ça ne pose pas le problème si je je met juste le contenu du $_POST[] dans une variable

Non et c'est même préférable.

[php]$post = 'Field'; // suffit
if(isset($_POST[$post])) // avec un $[/php]

EDIT :
J'ai supprimé l'autre message car tu as cliqué sur "nouveau" au lieu de "répondre"

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Avatar de l’utilisateur
Administrateur PHPfrance
Administrateur PHPfrance | 13170 Messages

14 Fév 2008, 23:59

Est-ce que tu veux stocker l'instruction ou le résultat de l'instruction dans ta variable ?

Parce que
[php]$isset = 'isset($_POST[\'Field\'])';
if($isset)[/php]
est équivalent
[php]$isset = 'isset($_POST[\'Field\'])';
if('isset($_POST[\'Field\'])')[/php]
Autrement dit "est-ce qu'une chaine vaut true".

Si tu veux stocker le résultat de l'instruction, il te suffit de faire
[php]$isset = isset($_POST['Field']);
if($isset)[/php]
qui est équivalent à
[php]if( isset($_POST['Field']) )[/php]
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Avatar de l’utilisateur
Administrateur PHPfrance
Administrateur PHPfrance | 13170 Messages

15 Fév 2008, 17:11

lolo509, il faut faire "Répondre", pas "Nouveau" ;)

Je recopie ta réponse ici, marque le sujet en tant que [Résolu] (pour pouvoir le faire, il faut t'inscrire ;) ) et supprime l'autre sujet

Lolo509 a écrit :Je faisais un blocage sur les apostrophes.
Merci pour tes conseils, ça fonctionne.

[php]
$isset = isset($_POST['Field']);
if($isset)
[/php]
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer