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