处理联系表格

时间:2014-04-09 15:45:29

标签: php validation

我正在向我的网站添加联系页面,但是注释文本框有问题。当用户在名称和电子邮件文本字段中输入无效信息时,网站会将用户重定向回联系页面以填写正确的信息。但是,我希望评论框对用户来说是可选的。例如,用户将输入他们的姓名和电子邮件,但没有任何评论。然后代码应该处理信息。目前,我的代码会将用户重定向回联系页面,因为用户没有在评论框中输入任何信息。有关如何解决此错误的任何建议吗?

谢谢!

if (empty($_REQUEST['comment'])) {
    $error = TRUE;

} else {
    $comment = $_REQUEST['comment'];
    $form['comment'] = $comment;
    if (!preg_match("/^.{0,50}$/", $comment)) {
        $error = TRUE;
        $messages['comment'] = "<p class='errorMessage'> You have entered invalid information.</p>";
    } else {
        $_SESSION['comment'] = $comment;
    }
}

1 个答案:

答案 0 :(得分:3)

如果要允许内容框为空,只需将空值设为可接受的值即可。这意味着如果存在值,则仅针对该字段运行验证。这意味着删除if / else语句,因为empty($_REQUEST['comment'])不再是有效的检查。

if (!empty($comment) && !preg_match("/^.{0,50}$/", $comment)) {

我刚刚将!empty($comment) &&添加到您的支票中,基本上是这样,&#34;如果有值继续并验证它&#34;。

如果您使用此代码,您还应该做的一件事是从评论框值中修剪空格。否则,用户可以键入空格字符,这不会被视为空:

$comment = trim($_REQUEST['comment']);

最终代码:

$comment = trim($_REQUEST['comment']);
$form['comment'] = $comment; // I am assuming this is used elsewhere
if (!empty($comment) && !preg_match("/^.{0,50}$/", $comment)) {
    $error = TRUE;
    $messages['comment'] = "<p class='errorMessage'> You have entered invalid information.</p>";
} else {
    $_SESSION['comment'] = $comment;
}