2017-04-17 6 views
0

私はphp電子メールフォームを作成しようとしました。フォームは基本的に動作していましたが、私が 'name'のように検証関数を追加したかったのですが、 しかし、 'name'を空白にしてメールを送信したときには機能しません。 本当にありがとうございます。php電子メールフォーム/ if/else if /エラーメッセージ

HTMLFILE

<form action="php_mini.php" method="post"> 

    Name: 
    <input type="text" name="name"> 
    <span class="error">* <?php echo $nameErr;?></span> 
    <br><br> 

    Email: 
    <input type="text" name="email"> 
    <span class="error">* <?php echo $nameErr;?></span> 
    <br><br> 

    Phone: 
    <input type="text" name ="phone"> 
    <br><br> 

    Comment: 
    <!--<textarea name="comment"></textarea>--> 
    <!--<input type = "text" name = "comment">--> 
    <textarea name="comment" rows="5" cols="40"></textarea> 
    <span class="error">* <?php echo $nameErr;?></span> 
    <br><br> 

    <input type="submit" value="Submit"> 
</form> 

PHP

echo '<pre>'; 
print_r($_POST); 
echo '</pre>'; 

$headers = 'MIME-Version: 1.0' . "\r\n" . 
     'Content-type: text/html; charset=iso-8859-1' . "\r\n" . 
     'From: Design_customers <customers.com' . " \r\n" . 
     //'Reply-To: [email protected]' . "\r\n" . 
     'X-Mailer: PHP/' . phpversion(); 
//error msg 
$nameErr = $emailErr = $phoneErr = ""; 
$name = $email = $comment = $phone = "";  

//receiver 

if (empty($_POST["name"])) { 
    $nameErr = "Name is required"; 
} else { 
    $name = test_input($_POST["name"]); 
} 

$email = $_POST['email']; 
/*$message = $_POST['comment'];*/ 
$message = 'You got a message from a customer.: 

Name: '.$_POST['name'].' 
Email: '.$_POST['email'].' 
Phone: '.$_POST['phone'].' 
Comment: '.$_POST['comment']; 
//sender 
$from = 'From: Customer'; 

$subject = 'Customer Inquiry'; 

mail($email, $subject, $message, $from); 
+0

もっと詳しく説明できます*「名前」を空にすると機能しません*?名前フィールドが空のフォームを送信すると '$ _POST ['email']'は実際には空ではありませんか? –

+0

タグを追加しました。 – mickmackusa

答えて

0

エラーを停止するためにif(isset($_POST["name"]))を使用しています。 [Notice: Undefined index: name in C........]

あなたはこのフォームをjavaスクリプトで検証することをお勧めします。私はあなたのスナップ部分をjavascriptで添付しました。

<form action="" method="post" onsubmit="return(Validate());" name="myform"> 

    Name: 
    <input type="text" name="name"> 
    <span class="error">* <div id="name_error" style="color:red;"></div> </span> 
    <br><br> 

</form> 





<script type="text/javascript"> 
    <!-- 
     // Form validation code will come here. 

     function Validate() 
     { 

     if(document.myform.name.value == "") 
     { 
      alert("Please provide your name!"); 

      name_error.textContent = "Name is Required.!"; 
      document.myform.name.focus() ; 
      return false; 
     } 


     return(true); 
     } 
    //--> 
</script> 
関連する問題