2010-07-06 10 views

cevap

58

şey böyle doldurun echo ($ giriş || $ password!):

// 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..."; 
} 
+3

Yine, bir isSet ($ _ POST [$ alan]) öneriyorum. Yine de bu iyi bir çözüm. – Borealid

+0

Teşekkürler Harold, aradığım şey buydu .. – FFish

+8

empty() her iki varoluşu ve false-ish değerlerini (boş, false, 0, boş dize) denetler. –

1

empty ve isset yapmalı. Şahsen

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... 
+0

Ayrıca bir isSet'e ihtiyacınız var, bence - aksi takdirde değer hiç yayınlanmadıysa bir hata alırsınız. – Borealid

0

Ben POST dizi ayıklamak ve sonra varsa sonra formu :)

+2

Awww, her zaman tehlikeli bir uygulamadır, çünkü global değişkenleri '$ _POST' üzerinden betiğinize sokmak mümkün olabilir. –

+0

Daha önce bunun hakkında bir şeyler duydum ve muhtemelen en iyi yolu değil :) özellikle önemli bir şey varsa –

3

kendi özel işlevini kullanın ...

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"); 

Ben kolayca senaryo için değiştirilebilir eminim. Temel olarak, değerlerden herhangi biri NULL ise doğru döner, böylece onu boş veya herhangi bir şekilde değiştirebilirsiniz.

1
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 
} 
+0

isset'i kullanmak daha iyidir. Strlen(), PHP'de false olan 0 değerini değerlendirir. –

0

böyle yaptım:

$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

Sadece bunu yapmak için hızlı bir fonksiyon yazdım. Birçok formla başa çıkmaya ihtiyacım vardı, ben de bunu yaptım, böylece ',' ile ayrılmış bir dizeyi kabul edecek. Böylece, bu işlevi kodunuza girebilir ve hataları sayfa başına temelinde ele alabilirsiniz.

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

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

Not: Gerekli bir alan için 0 kabul edilebilir bir değer olduğunda dikkatli olun. @ Harold1983'den bahsedildiği gibi, bunlar PHP'de boş olarak değerlendirilir. Bu tür şeyler için boş boş yerine ispatı kullanılmalıdır.

$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; 
} 
İlgili konular