2016-07-22 9 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'ブロックのうち1つだけが一度に実行されます。あなたがコード化したように、あなたは最初のエラーメッセージがマッチしたことしか見ることができません。 – ceejayoz

+0

@ ceejayozのコメントに追加するには、すべての 'elseif'を単純な' if'で置き換えます。実際には、 'elseif'ブロックは、その前の' if'または 'elseif'が存在しない場合にのみ実行されます。つまり、すべてのエラーメッセージを格納するために配列を使用する必要があります。そうしないと、最後にチェックされたエラーメッセージのみが取得されます。 – Kilazur

答えて

2

上記のコードの2行目に "$ fname"が間違っているようです。

+0

ありがとうミスター、私は何をしたのか愚かな間違い!!!貧しい私。 – Nazmul

関連する問題