it-swarm.com.de

PHP: Prüfen Sie, ob die geposteten Variablen leer sind

Gibt es eine einfachere Funktion für so etwas:

if (isset($_POST['Submit'])) {
    if ($_POST['login'] == "" || $_POST['password'] == "" || $_POST['confirm'] == "" || $_POST['name'] == "" || $_POST['phone'] == "" || $_POST['email'] == "") {
        echo "error: all fields are required";
    } else {
        echo "proceed...";
    }
}
32
FFish

Etwas wie das:

// Required field names
$required = array('login', 'password', 'confirm', 'name', 'phone', 'email');

// Loop over field names, make sure each one exists and is not empty
$error = false;
foreach($required as $field) {
  if (empty($_POST[$field])) {
    $error = true;
  }
}

if ($error) {
  echo "All fields are required.";
} else {
  echo "Proceed...";
}
63
Harold1983-

Ich benutze meine eigene Funktion ...

public function areNull() {
    if (func_num_args() == 0) return false;
    $arguments = func_get_args();
    foreach ($arguments as $argument):
        if (is_null($argument)) return true;
    endforeach;
    return false;
}
$var = areNull("username", "password", "etc");

Ich bin sicher, dass es leicht für Ihr Szenario geändert werden kann. Im Grunde gibt es true zurück, wenn einer der Werte NULL ist. Sie können ihn also leer oder was auch immer ändern.

3
animuson

empty und isset sollte es tun.

if(!isset($_POST['submit'])) exit();

$vars = array('login', 'password','confirm', 'name', 'email', 'phone');
$verified = TRUE;
foreach($vars as $v) {
   if(!isset($_POST[$v]) || empty($_POST[$v])) {
      $verified = FALSE;
   }
}
if(!$verified) {
  //error here...
  exit();
}
//process here...
2
Jacob Relkin
if( isset( $_POST['login'] ) &&  strlen( $_POST['login'] ))
{
  // valid $_POST['login'] is set and its value is greater than zero
}
else
{
  //error either $_POST['login'] is not set or $_POST['login'] is empty form field
}
1
Nahser Bakht
foreach($_POST as $key=>$value)
{

   if(empty(trim($value))
        echo "$key input required of value ";

}

0
dılo sürücü

Ich habe es so gemacht:

$missing = array();
 foreach ($_POST as $key => $value) { if ($value == "") { array_Push($missing, $key);}}
 if (count($missing) > 0) {
  echo "Required fields found empty: ";
  foreach ($missing as $k => $v) { echo $v." ";}
  } else {
  unset($missing);
  // do your stuff here with the $_POST
  }
0
Calin Rusu

Ich habe gerade eine schnelle Funktion dazu geschrieben. Ich brauchte es, um mit vielen Formularen umzugehen, also habe ich es so erstellt, dass es eine durch ',' getrennte Zeichenfolge akzeptiert.

//function to make sure that all of the required fields of a post are sent. Returns True for error and False for NO error  
//accepts a string that is then parsed by "," into an array. The array is then checked for empty values.
function errorPOSTEmpty($stringOfFields) {
        $error = false;
            if(!empty($stringOfFields)) {
                // Required field names
                $required = explode(',',$stringOfFields);
                // Loop over field names
                foreach($required as $field) {
                  // Make sure each one exists and is not empty
                  if (empty($_POST[$field])) {
                    $error = true;
                    // No need to continue loop if 1 is found.
                    break;
                  }
                }
            }
    return $error;
}

So können Sie diese Funktion in Ihren Code eingeben und Fehler auf Seitenbasis behandeln.

$postError = errorPOSTEmpty('login,password,confirm,name,phone,email');

if ($postError === true) {
  ...error code...
} else {
  ...vars set goto POSTing code...
}
0
user1518699

Ich persönlich extrahiere das POST - Array und habe dann, wenn (! $ Login ||! $ Password) das Echo ausgefüllt :)

0
Doug Molineux

Hinweis: Seien Sie vorsichtig, wenn 0 für ein erforderliches Feld ein akzeptabler Wert ist. Wie @ Harold1983- erwähnt, werden diese in PHP als leer behandelt. Für diese Dinge sollten wir isset anstelle von empty verwenden.

$requestArr =  $_POST['data']// Requested data 
$requiredFields = ['emailType', 'emailSubtype'];
$missigFields = $this->checkRequiredFields($requiredFields, $requestArr);

if ($missigFields) {
    $errorMsg = 'Following parmeters are mandatory: ' . $missigFields;
    return $errorMsg;
}

// Function  to check whether the required params is exists in the array or not.
private function checkRequiredFields($requiredFields, $requestArr) {
    $missigFields = [];
    // Loop over the required fields and check whether the value is exist or not in the request params.
    foreach ($requiredFields as $field) {`enter code here`
        if (empty($requestArr[$field])) {
            array_Push($missigFields, $field);
        }
    }
    $missigFields = implode(', ', $missigFields);
    return $missigFields;
}
0