2013-04-11 79 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