【发布时间】:2012-12-06 09:14:19
【问题描述】:
当用户提交一个使用 if 语句验证的表单时,像这样
if (strlen($_POST['password']) < 5)
{
$data['errors'][] = 'Too short';
}
elseif ($_POST['password'] != $_POST['confirm_password'])
{
$data['errors'][] = 'doesnt match';
}
验证完成后,我们会检查是否有任何错误
if (!$data['errors'])
如果不是,我们继续将数据填充到数据库中
但是如果有错误,用户需要重新填写整个表单,我不希望这样,如果合法,我需要渲染一些数据
if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL))
{
$data['errors'][] = 'E-mail not valid';
}
像这里一样,如果密码验证失败但电子邮件验证正常,我想退回表单中已经有价值的电子邮件。我是否需要在每个验证检查上添加一个 else 语句,例如 } else { $data['postback']['email']; } 或者我可以用另一种更简单的方式做到这一点吗?
我该怎么做?
【问题讨论】:
-
最好的做法(在我看来)是通过 Ajax 提交表单,并从 PHP 文件返回错误,然后用 JavaScript 渲染和显示。
-
将每个字段的值存储到 $_SESSION,然后将这些值设置为
input的值部分。所以它看起来像<input type='text' value='<?php echo $_SESSION['email']; ?>' />或类似的东西
标签: php