2016-05-17 6 views
0

私は処理するためにPHPを使用するフォームを持っています。条件が満たされない場合を除いて動作します。私は通常のフィールドを隠すキャプチャを使用する代わりに。このプロセスは、隠されたフィールドが=何もない場合にのみ実行されると考えられます。さもなければ、それは壊すと思われる。 $ hide(隠しフィールド)=何もしていない場合は機能しますが、フィールドが記入されるとエラーがスローされます。条件が満たされない場合にif/else文を破る

<?php 
$to  = '[email protected]'; 
$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(); 
    } 
} 
?> 
+4

を継続する前に何aあなたは最初の 'if'ブロックで*から*ブレークしようとしていますか?そのブロックに何もする必要がなければ、それを空のままにしておきます。あるいは、条件を逆転させ( '!='の代わりに '=='を使う)、 'else'ブロックにすべてのロジックを入れるのではなく、ただ一つの条件ブロックだけを持つ方が良いでしょう。 – David

+1

'break 'はif文では動作しません。[documentation](http://php.net/break)を参照してください。たとえそれがあっても、あなたの使用は(少なくともあなたの例では)とにかく重複しているようです。 –

+0

okありがとう、私はそれをします –

答えて

2

あなたは交換してくださいbreak

を使用する必要はありません。

if ($hide!=''){ 
    break; 
} 
else { 

だけ

if ($hide) { 
    // run email code 

で、これは$皮が何かが含まれていることを確認します

関連する問題