2016-07-22 107 views
0

任何人都可以告诉我我在这里做了什么错误吗?错误仅在名字为空时显示,其余(例如姓氏/电子邮件/正文)不起作用。电子邮件验证也不起作用。在php中进行表单验证无法正常工作

$error = ""; 
if (empty($fanme)) { 
    $error = "First name must not be empty !"; 
    } 
elseif (empty($lname)) { 
    $error = "Last name must not be empty !"; 
    } 
elseif (empty($email)) { 
    $error = "email must not be empty !"; 
    } 
elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) { 
    $error = "Invalid Email Address !"; 
    } 
elseif (empty($body)) { 
    $error = "Message field not be empty !"; 
    } 
else { 
    $msg = "ok"; 
    } 
} 
if (isset($error)) { 
    echo "<span style='color:red'>$error</span>"; 
     } 
if (isset($msg)) { 
    echo "<span style='color:green'>$msg</span>"; 
    } 
+0

只有一个if/elseif/else块会一次执行。正如你编写它,你只会看到匹配的第一个错误信息。 – ceejayoz

+0

要添加@ ceejayoz的评论,请用简单的'if'替换所有'elseif';的确,只有在其前面的ifif或elseif不是时,才会执行elseif块。这意味着你将不得不使用一个数组来存储所有的错误信息,否则你只会得到最后一个检查。 – Kilazur

回答

2

看起来你在上面的代码的第2行中拼写错误“$ fname”。

+0

谢谢先生,我做了一个多么愚蠢的错误!可怜的我。 – Nazmul