110 votes

Vérifier si $_POST existe

Je suis en train de vérifier si un $_POST existe et si elle le fait, imprimer à l'intérieur d'une autre chaîne, si non, ne pas imprimer du tout.

quelque chose comme ceci:

$fromPerson = '+from%3A'.$_POST['fromPerson'];

function fromPerson() {
    if !($_POST['fromPerson']) {
        print ''
    } else {
        print $fromPerson
    };
}

$newString = fromPerson();

Toute aide serait super!

184voto

ehmad Points 655
if( isset($_POST['fromPerson']) )
{
     $fromPerson = '+from%3A'.$_POST['fromPerson'];
     echo $fromPerson;
}

65voto

Dheeraj Bhaskar Points 5244

Simple. Vous avez deux choix:

1. Vérifiez si il y a un post de données à tous les

if (!empty($_POST)) {
    // handle post data
    $fromPerson = '+from%3A'.$_POST['fromPerson'];
    echo $fromPerson;
}

(OU)

2. Seulement vérifier si une Clé est disponible dans les données post

if( isset($_POST['fromPerson']) )
{
     $fromPerson = '+from%3A'.$_POST['fromPerson'];
     echo $fromPerson;
}

34voto

Rafael Points 218

Tout le monde est à dire d'utiliser la fonction isset() - qui sera probablement le travail pour vous.

Cependant, il est important que vous compreniez la différence entre

$_POST['x'] = NULL; et $_POST['x'] = '';

isset($_POST['x']) sera de retour false sur le premier exemple, mais sera de retour true sur la seconde, même si vous avez essayé d'imprimer soit l'un, les deux se retournent une valeur vide.

Si votre $_POST provient de l'utilisateur saisi le champ/la forme et le vide, je CROIS (je ne suis pas certain à 100% sur ce bien), la valeur sera "" mais NON NULLES.

Même si cette hypothèse est incorrecte (quelqu'un s'il vous plaît corrigez-moi si je me trompe!) le ci-dessus est toujours bon à savoir pour une utilisation future.

20voto

h3xStream Points 2710
isset($_POST['fromPerson']) 

9voto

Bronek Points 1476
  • Dans ce cas, l'aide de la méthode isset n'est pas approprié.

Selon la documentation de PHP: http://php.net/manual/en/function.array-key-exists.php
(voir l'Exemple n ° 2 array_key_exists() vs isset())
La méthode array_key_exists est prévu pour la vérification de la présence dans la gamme.

Donc le code en question pourrait être modifié comme suit:

function fromPerson() {
   if (array_key_exists('fromPerson', $_POST) == FALSE) {
        return '';
   } else {
        return '+from%3A'.$_POST['fromPerson'];
   };
}

$newString = fromPerson();


  • Vérification de la présence de l'array $_POST n'est pas nécessaire parce que c'est l'environnement PHP variable globale depuis la version 4.1.0 (de nos jours on ne respecte pas les anciennes versions de PHP).

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