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

Lolo509
Invité n'ayant pas de compte PHPfrance

14 févr. 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 :
if(isset($_POST['Field']))
{
...
}
Celui-ci ne fonctionne pas :
$isset = 'isset($_POST[\'Field\'])';
if($isset)
{
...
}
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évr. 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 :
$post = '\'Field\'';
if(isset($_POST[post]))
{
...
} 

Modérateur PHPfrance
Modérateur PHPfrance | 7637 Messages

14 févr. 2008, 21:58

ç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.
$post = 'Field'; // suffit
if(isset($_POST[$post])) // avec un $
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 | 13233 Messages

14 févr. 2008, 23:59

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

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

Si tu veux stocker le résultat de l'instruction, il te suffit de faire
$isset = isset($_POST['Field']);
if($isset)
qui est équivalent à
if( isset($_POST['Field']) )
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 | 13233 Messages

15 févr. 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
Je faisais un blocage sur les apostrophes.
Merci pour tes conseils, ça fonctionne.
$isset = isset($_POST['Field']);
if($isset) 
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