使用PHP检查未填充的字段

时间:2013-04-11 21:43:08

标签: php forms field

我正在创建一个结帐页面,要求客户填写他的个人信息以及他的信用卡详细信息(此部分使用条纹)。

我想知道,检查字段是否填满的最佳方法是什么?我应该在processingPayment.php中执行$ _POSTs字段和处理付款,如果字段没有填写,我会重定向回结账?

或者在提交表单之前使用js在现场检查是否更好?

如果在处理页面中,我会尝试这样的事情:

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

但是我需要重新发送输入的值,以便结帐页面接收它们,并且用户不必再次重新填充每个字段...

3 个答案:

答案 0 :(得分:1)

这样的东西?

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

PHP的最佳方法是拥有一组可能的参数:

$array = array('firstName', 'lastName');

foreach($array as $val) {
    if( empty($_POST[$val]) ) {
        echo "$val is empty";
    }
}

否则,客户端验证也可以,但始终可以禁用。为了完全安全,请同时使用客户端和服务器端。

答案 1 :(得分: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(View)中,完整的if语句

更具可读性

答案 2 :(得分:0)

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

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