【发布时间】:2016-05-18 02:43:39
【问题描述】:
我有一个使用 php 处理的表单,它可以工作,除非条件不满足。我没有使用 captia,而是隐藏了一个普通字段。该过程仅在隐藏字段为 = 无的情况下才假定运行。否则它应该会破裂。如果 $hide (hidden field) = nothing 则有效,但在填写该字段时会引发错误。
<?php
$to = 'test@test.com';
$email = $_POST['email'];
$name = $_POST['name'];
$subject = $_POST['subject'];
$message = $_POST['comments'];
$hide = $_POST['message'];
$error=array();
if ($hide!=''){
break;
}else{
if($_POST['name']==''){
$error[]="Your name is required";
}
if($_POST['email']==''){
$error[]="Your email is required";
}
if($_POST['subject']==''){
$error[]="Subject is required";
}
if($_POST['comments']==''){
$error[]="Comments is required";
}
if(count($error)>0){
echo "<div class='alert alert-danger'>";
foreach($error as $data)
{
echo "<p>".$data."</p>";
}
echo "</div>";
die();
}
$headers = 'From: Attorney Website'. '<'.$email.'>' . "\r\n" .
'Reply-To: '. $email . "\r\n" .
'X-Mailer: PHP/' . phpversion();
if(mail($to, $subject, $message, $headers))
{
echo "<div class='alert alert-success'>You message has been succesfully received. We will reply you soon.</div>";
die();
} else {
echo "<div class='alert alert-danger'>Opps! Something went wrong. Please try again.</div>";
die();
}
}
?>
【问题讨论】:
-
你想在第一个
if块中“打破”来自的什么?如果该块中无事可做,则将其留空。或者,更好的是,反转条件(使用==而不是!=)并且只有一个条件块,而不是将所有逻辑放在else块中。 -
break不适用于 if 语句,请参阅 documentation。即使确实如此,无论如何您对它的使用(至少在您的示例中)似乎都是多余的。 -
好的,谢谢,我会这样做的
-
你不需要使用break
标签: php if-statement