2012-04-25 11 views
0

Javascriptの検証後に同じPHPページから電子メールを送信しようとしていますが、電子メールを送信する際に問題があります。誰かがこれで私を助けることができますか?ここでJavaScriptの有効性を利用したPHPメールの問題

は、JavaScriptコードである:ここで

 <!-- --> 
     <script type="text/javascript">             
     function checkCheckBoxes() { 

      if (document.form.inforequired.checked == true) 
      { 
       if (document.form.option1.checked == false && document.form.option2.checked == false && document.form.option3.checked == false && document.form.option4.checked == false && document.form.option5.checked == false && document.form.option6.checked == false && document.form.option7.checked == false && document.form.option8.checked == false && document.form.option9.checked == false && document.form.option10.checked == false) 
       { 
        document.getElementById('error').innerHTML = "Please choose your options."; 
        return false; 
       } 

       if (document.form.option8.checked == true || document.form.option9.checked == true || document.form.option10.checked == true) 
       { 
        if (document.form.address.value == "") 
        { 
         document.getElementById('erroraddress').innerHTML = "Please enter your address."; 
         return false; 
        } 
       } 
       else 
       { 
        document.forms["form"].submit(); 
        return true; 
       } 

      } 
      else 
      { 
       document.forms["form"].submit(); 
       return true; 
      } 
     } 
    </script> 
    <!-- Email --> 

は他の部分に電子メールを送信するためにPHPコードです。

<div id="content"> 
    <h1 id="formSpacingHeading"> Visitor Information </h1> 

<?if(!isset($_POST['submit'])):?> 

    <form id="form" name="form" onsubmit="return checkCheckBoxes();" action="" method="POST"> 

     <p id="formSpacing"><label for="username" class="iconic user" > Name <span class="required">*</span></label> <input type="text" name="username" id="username" required="required" placeholder="Enter your name" /></p>   
     <p id="formSpacing"><label for="usermail" class="iconic mail-alt"> E-mail address <span class="required">*</span></label> <input type="email" name="usermail" id="usermail" placeholder="Enter your E-mail ID" required="required" /> </p> 
     <p id="formSpacing"><label for="contactno" class="iconic link"> Contact number <span class="required">*</span></label> <input type="text" pattern="^\d\d\d\d\d\d\d\d\d\d$" name="contact" id="contactno" placeholder="Enter your contact number" required="required" /></p> 
     <input type="submit" name="submit" value="Submit Form" /> 
    </form> 

<?php else : 
     $name=$_POST['username']; 
     $mail=$_POST['usermail']; 
     $contact=$_POST['contact']; 

     $to = "[email protected]"; 
     $subject = "New Visitor Information"; 
     $message = $name; 
     $from = $mail; 
     $headers = "From:" . $from; 
     $email = mail($to, $subject, $message, $headers); 

     if($email){ 
      echo "Thank you. We will keep you updated with the latest information."; 
     } 
     else{ 
      echo "Error processing your request. Please try again later."; 
     } 
?> 
<? endif ?> 
+4

に電子

?> <? endif ?> 

これらの問題は何ですか? –

+0

クライアント側の検証に頼るべきではありません。 – Prisoner

+0

私はちょうどそれを考え出した。これはコード '$ headers =" From: "で問題になります。 $ from; '。しかし、私はちょうど '$ headers = $ from 'を使うと動作します!!ヘッダーの問題は何か分かりません。ヘッダーのフォーマットが間違っていますか? – maddy2012

答えて

-1

私はPHPの専門家ではありませんが、いくつかの基本的なことをプログラムしました。

if文がすべて間違っていると思います。

変更..

<?if(!isset($_POST['submit'])):?> 

変更

<?if(!isset($_POST['submit'])){?> 

<?php else : 

<?php } else { 

チャン

}?> 
+0

これは[代替制御構文](http://us.php.net/manual/en/control-structures.alternative-syntax.php)として知られています。それは完全に合法です。 – DCoder

+0

@henry:両方の構文が機能します。私はこの問題がヘッダーにあることを理解しました。私の上記のコメントを読んで、私がメール機能の$ヘッダの問題を述べたところを読んでください。 – maddy2012

関連する問題