2013-04-11 62 views
0

我正在創建一個結賬頁面,要求客戶填寫他的個人信息以及他的信用卡詳細信息(此部分使用條帶)。使用PHP檢查未填充字段

我想知道,檢查字段是否填滿或最好的方法是什麼?我應該在processingPayment.php中執行$ _POSTs字段並處理付款,並且如果字段未填充,我會重定向回結帳?

或者在提交表單之前使用js檢查現場是否更好?

如果在處理頁面,我會嘗試這樣的事:

if (empty($firsName) || empty($lastName) || empty($address) || empty ($city) || empty ($state) || empty($zip)) 
{ 
header('Location: checkout.php'); 
} 

但我需要這樣的結帳頁面接收他們,並且用戶不必重新發送中輸入的值再次重新填滿每一個領域...

+1

要不是我更可讀,我會做_before_形式確認提交,使用Javascript。這樣,發送到您的PHP文件的任何請求將滿足少數基本要求,因此您不需要將它們發回。如果這是一個選項,[像這樣的問題可能與你有關。](http://stackoverflow.com/questions/339230/javascript-form-validation) – jmeas 2013-04-11 21:44:55

回答

1

這樣的事情?

foreach($_POST as $key=>$val) { 
    if(empty($val)) { 
     echo "$key is empty"; 
    } 
} 

最好方法與PHP是有可能的參數數組:

否則,客戶端驗證工作過,但總是可以被禁用。爲了完全安全,請使用客戶端和服務器端。

+0

_「同時使用客戶端和服務器端。」_非常好的建議。 – jmeas 2013-04-11 21:49:30

+0

** samyb8 **正在詢問有關_flashing data_。只是指着。 – itachi 2013-04-11 21:56:53

0

您可以使用會話來存儲輸入的數據,但你需要單獨檢查每個值:

PHP

<?php 
session_start(); 

foreach ($_POST as $key => $value) { 
    if (strlen(trim($value)) <= 0) { //You could replace '0' 
     $_SESSION[$key] = $value; 
    } 
} 

?> 

FORM

<form> 
First name: <input type="text" value="<?php $_SESSION['firstName'] ? $_SESSION['firstName'] : ''; ?>" placeholder="First Name" /> 
.... 
</form> 

$_SESSION['firstName'] ? $_SESSION['firstName'] : '';

相同
if ($_SESSION['firstName']) return $_SESSION['firstName'] 
else return ''; 

它是在HTML(查看),充分if語句

0
$var = isset($_POST['field']) ? $_POST['field'] : ''; 
$var2 = isset($_POST['field2']) ? $_POST['field2'] : ''; 
// and so on 

if(empty($var) || empty($var2)) 
{ 
    //it's empty 
} 
+0

而不僅僅是代碼,你能解釋這是如何回答提問者的問題嗎?它會讓找到答案的人更有用。 – MCeley 2013-04-11 23:10:55