Necesito comprobar si $_POST existen variables utilizando una sola declaración isset.

if (isset$_POST['name']  &&  isset$_POST['number']  &&  isset$_POST['address']  &&  etc ....)

¿hay alguna forma fácil de lograr esto?

Por qué comprobar 25 $_Post?
Tengo 25 variable, por ejemplo
Me pregunto si usted puede reducir esta operación, lógicamente, tales como cheque en el botón enviar $_POST[‘enviar’]. Mientras, todo esto es mi opinión, si no puedes dejar pasar esta comprobación @ajtrichards ‘s respuesta es buena.
No se puede asegurar 25 variable existe comprobando $_POST[‘enviar’] sólo, Porque el usuario puede enviar un formulario de edición o eliminación de una entrada de campo a través de Navegador web, herramientas de desarrollo tales como INSPECCIONAR en fire fox .
Lo que está mal con sectus ‘ respuesta ?

OriginalEl autor PHP | 2013-06-19

8 Comentarios

  1. 14

    Uso de manera sencilla con array_diff y array_keys

    $check_array = array('key1', 'key2', 'key3');
    if (!array_diff($check_array, array_keys($_POST)))
        echo 'all exists';

    OriginalEl autor sectus

  2. 5
    $variables = array('name', 'number', 'address');
    
    foreach($variables as $variable_name){
    
       if(isset($_POST[$variable_name])){
          echo 'Variable: '.$variable_name.' is set<br/>';
       }else{
          echo 'Variable: '.$variable_name.' is NOT set<br/>';
       }
    
    }

    O, Recorrer cada $_POST clave/par

    foreach($_POST as $key => $value){
    
       if(isset($value)){
          echo 'Variable: '.$key.' is set to '.$value.'<br/>';
       }else{
          echo 'Variable: '.$key.' is NOT set<br/>';
       }
    
    }

    La última forma es quizás la manera más fácil – si alguno de sus $_POST variables de cambio que no es necesario actualizar una matriz con los nuevos nombres.

    Quiero comprobar la Existencia de la variable , no para no NULO. La segunda opción es la más adecuada ?
    Vaya con el primero – poner las variables en una matriz y comprobar si hay una $_POST variable que coincide con
    Así que, cómo utilizar el resultado de este código en si la condición?
    Crear una función con este código y utilizar el valor de retorno (VERDADERO o FALSO)

    OriginalEl autor ajtrichards

  3. 3

    ¿Necesita que la condición se cumple si alguno de ellos o el conjunto de todos?

    foreach ($_POST as $var){
        if (isset($var)) {
    
        }
    }

    OriginalEl autor Vigintas Labakojis

  4. 1
    $variableToCheck = array('key1', 'key2', 'key3');
    
    foreach($_POST AS $key => $value)
    {
       if( in_array($key, $variableToCheck))
      {
         if(isset($_POST[$key])){
         //get value
         }else{
         //set validation error
        }   
      }
    }
    Este código sólo comprobar si el $_POST variable en la matriz definida. Pero no se compruebe que todas las variables en la matriz definida . Por lo tanto, este código no es útil para el propósito de la pregunta.
    Este código hace, en primer lugar se itera sobre todas las variables post y comprobar si la variable actual debe ser validado o no, si se debe validar, a continuación, hay isset() comprueba como se requiere en su pregunta.
    se están probando 25 variable post, lo que si va a enviar más variables en el post como 30 (campo oculto, botón de enviar, etc). Entonces usted tiene que encontrar por 25 a comprobar.

    OriginalEl autor Irfan DANISH

  5. 1

    Que usted está pidiendo es exactamente lo que está en isset de la página

    isset($_POST['name']) && isset($_POST['number']) && isset($_POST['address'])

    es el mismo:

    isset($_POST['name'], $_POST['number'], $_POST['address'])

    Si usted está pidiendo una mejor práctica o forma de hacer valer esto teniendo en cuenta que ya tienes todas las claves necesarias, a continuación, usted puede usar algo como:

    $requiredKeys = ['name', 'number', 'address'];
    $notInPost = array_filter($requiredKeys, function ($key) {
        return ! isset($_POST[$key]);
    });

    Recuerde, isset no devuelve el mismo resultado que array_key_exists

    OriginalEl autor

  6. 0

    La siguiente es una función personalizada que tomar una matriz para la necesaria publicado elementos como parámetro y devuelve verdadero si todos ellos publicados y no hay ninguna de ellas es una cadena vacía '' o false si no hay al menos uno de ellos no es:

    function checkPosts($posts){
      if (!is_array($posts)) return "Error: Invalid argument, it should be an array";
      foreach ($posts as $post){
        if (!isset($_POST[$post]) || $_POST[$post] == '') return false;
      }
      return true;
    } 
    //The structure of the argument array may be something like:
    
    $myPosts = array('username', 'password', 'address', 'salary');

    OriginalEl autor SaidbakR

  7. 0

    Uso de la Matriz de para recopilar datos de forma como sigue:

    • PersonArray [nombre],
    • PersonArray [dirección],
    • PersonArray[‘email], etc.

    y el proceso de su forma en el post de la siguiente manera:

    if(isset($_POST['name'])){
          ... 
    }

    OriginalEl autor ersks

  8. -2

    if isset(($_POST['name']) && ($_POST['number']) && ($_POST['address']))

    También puede utilizar este. podría ser más fácil.

    Esto no funciona, isset() sólo funciona con variables. Su ejemplo se genera una expresión booleana, a continuación, intenta probar el resultado (verdadero o falso) con isset. El resultado de la expresión booleana que dependerá del contenido de la $_POST variables.

    OriginalEl autor Anand Borad

Dejar respuesta

Please enter your comment!
Please enter your name here