3 votes

Éviter d'utiliser isset en PHP lors de l'accès aux variables $_POST, $_GET et autres ?

Comment puis-je empêcher PHP de renvoyer un Variable indéfinie une erreur chaque fois que j'essaie de vérifier une variable si elle a un contenu et que cette certaine variable n'a pas encore été utilisée ? Dans ma configuration précédente, je peux vérifier $_POST['email'] même si je n'ai encore rien mis dedans. Il renvoie simplement un résultat vide. C'est comme ça que je veux que ma configuration PHP fonctionne, mais je n'arrive pas à trouver comment la configurer. :(

Exemple :

<?php
if ($_POST['info'] != '') {
  // do some stuff
}
?>
<form method="post">
<input type="text" name="info" />
<input type="submit" />
</form>

Lorsque vous utilisez le script ci-dessus dans une page PHP unique et que vous l'exécutez sur ma configuration actuelle, il renvoie un message de type Variable indéfinie erreur. Sur ma configuration précédente, ce script fonctionnait comme un charme. Quelqu'un peut-il m'éclairer sur ce problème ? Si vous avez besoin de plus de détails, dites-le et je vais essayer d'ajouter plus de détails à ce post.

I connaître sur le isset() mais je ne veux pas l'utiliser sur tous mes scripts. Je veux qu'il no être que restrictif sur les variables.

0voto

Musical Saw Points 3

Si vous souhaitez définir des variables $_POST, la multiplicité de ces déclarations encombre votre code :

if (isset($_POST['info']))
  $info = $_POST['info'];
... etc....

Que pensez-vous de ça ?

function setPostVar( &$v ) {
    $trace = debug_backtrace();
    $vLine = file( __FILE__ );
    $fLine = $vLine[ $trace[0]['line'] - 1 ];
    preg_match( "#\\$(\w+)#", $fLine, $match ); 
    eval("\$v = isset(\$_POST[\"$match[1]\"])?\$_POST[\"$match[1]\"]:'';");
}

Maintenant, tant que vous êtes heureux de nommer les variables similaires à vos variables POST

ie. $Foo = $_POST['Foo'];

tu peux juste faire ça :

setPostVar($Foo); // equivalent to if(isset($_POST['Foo']) $Foo = $_POST['Foo'];
setPostVar($Bar); // ditto
setPostVar($Baz); // ditto

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X