2014-09-11 2 views
-3

это моя форма, так как она отправляет электронное письмо на четыре разных адреса электронной почты на selectoin разных радиокнопки ..... Но я не хочу, чтобы форма была отправлена ​​до тех пор, пока не будет подтвержден captcha..так я добавил эту капчу, но это не работает Я не знаю почему. Пожалуйста, помогите мне в этом .... Спасибо заранее.Я создал Captcha, но он не работает. Я не знаю почему?

   <?php 
       session_start(); 
       //error_reporting(E_ERROR | E_PARSE); 

       //echo "<pre>"; 
       //print_r($_REQUEST); 
       if(!empty($_POST['answer'])) 
       { 
        //echo "You entered " . htmlentities($_POST['answer']) . " which is "; 

        if ($_SESSION['answer'] == $_POST['answer']) 
        { 
         //echo 'correct'; 
         $validatedCaptcha = true; 
        } 
        else 
        { 
         echo '<center>'.'You Filled wrong Captcha. We expected ' . $_SESSION['answer'].'  .Kindly Fill the Form Again'.'</center>'; 
         $validatedCaptcha = false; 
        } 
       } 

       $digit1 = mt_rand(1, 20); 
       $digit2 = mt_rand(1, 20); 
       if (mt_rand(0, 1) === 1) { 
        $math = "$digit1 + $digit2"; 
        $_SESSION['answer'] = $digit1 + $digit2; 
       } else { 
        if($digit1 >= $digit2) 
        { 
         $math = "$digit1 - $digit2";  
         $_SESSION['answer'] = $digit1 - $digit2; 
        } 
        else if($digit1 < $digit2) 
        { 
         $math = "$digit2 - $digit1";  
         $_SESSION['answer'] = $digit2 - $digit1; 
        } 
       } 
       //echo "<pre>"; 
       //print_r($_SESSION); 
       ?> 
       <center> 
        <?php 
        $name = $_REQUEST['name11']; 
        $email = $_REQUEST['email11']; 
        $phone12 = $_REQUEST['mobile11']; 
        $subject = $_REQUEST['subject11']; 
        $message1 = $_REQUEST['message11']; 
        $zone1 = $_REQUEST['zone1']; 
        $null_virdi = "-f " . $email; 


        if (isset($_REQUEST['submit']) && $validatedCaptcha == true) { 

         $message = "Name: " . $name . "\n" . "Email: " . $email . "\n" . "phone :" . $phone12 . "\n" . "Message :" . $message1; 

         if ($_REQUEST['zone1'] == "South") { 

          echo "Thank you for Contacting our South Indian Zonal Office"; 
          mail("[email protected]", $subject, $message, null, $null_virdi); 
         } 

         if ($_REQUEST['zone1'] == "Delhi") { 

          mail("[email protected]", $subject, $message, null, $null_virdi); 
          echo "Thank you for Contacting our Delhi Office"; 
         } 

         if ($_REQUEST['zone1'] == "Hyderabad") { 

          mail("[email protected]", $subject, $message, null, $null_virdi); 
          echo "Thank you for Contacting our Hyderabad & AP Office"; 
         } 

         if ($_REQUEST['zone1'] == "Pune") { 

          mail("[email protected]", $subject, $message, null, $null_virdi); 
          echo "Thank you for Contacting our Pune/Nasik Office"; 
         } 

         if ($_REQUEST['zone1'] == "west") { 

          mail("[email protected]", $subject, $message, null, $null_virdi); 
          echo "Thank you for Contacting our West Zone Office"; 
         } 
        } 
        ?> 
        <html><head> 
          <script> 
           function validateForm() 
           { 
            var x = document.forms["myForm"]["email1"].value; 
            var atpos = x.indexOf("@"); 
            var dotpos = x.lastIndexOf("."); 
            if (atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= x.length) 
            { 
             alert("Not a valid e-mail address"); 
             return false; 
            } 
           } 
          </script> 
         </head><body> 

          <div style="width:50%;border: 4px double #dbd395;margin: 0;padding: 28px 0px 0px 34px;background-color: #F8F8F8"> 
       <form name="myForm" action="" onSubmit="return validateForm();" method="post" > 

          <table > 
            <tr> 
            <h3 style="margin-left:5px;">Enquiry for Quotation</h3> 
            </tr> 
            <tr> 
             <td></td> 
            </tr> 
            <tr> 
             <td>Name&nbsp;<font color="#FF0000">*</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&nbsp;&nbsp;<input type="text" required="required" name="name11" size="40"/></td> 
            </tr> 
            <td></td> 
            </tr> 
            <tr> 
             <td>Email&nbsp;<font color="#FF0000">*</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&nbsp;&nbsp;<input type="text" required="required" name="email11" size="40"/></td> 
            </tr> 
            <tr> 
             <td></td> 
            </tr> 
            <tr> 
             <td>Mobile&nbsp;<font color="#FF0000">*</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&nbsp;&nbsp;<input type="text" required="required" name="mobile11" size="40"/></td> 
            </tr> 
            <tr> 
             <td>Zone&nbsp;<font color="#FF0000">*</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;<input type="radio" required="required" name="zone1" value="South"/>South India &nbsp;&nbsp;<input type="radio" name="zone1" value="Delhi" />Delhi NCR <input type="radio" name="zone1" value="Hyderabad"/>Hyderabad & AP <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="radio" name="zone1" value="Pune"/>Pune/Nashik <input type="radio" name="zone1" value="west"/>Other </td> 
            </tr> 
            <td></td> 
            </tr> 
            <tr> 
             <td>Subject&nbsp;<font color="#FF0000">*</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&nbsp;<input type="text" required="required" name="subject11" size="40"/></td> 
            </tr> 
            <tr> 
             <td></td> 
            </tr> 
            <tr> 
             <td style="vertical-align: top;"><font style=vertical-align:top; color="#000000">Message</font><font style=vertical-align:top; color="#FF0000">* :</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<textarea rows="4" cols="32" name="message11" required="required"/></textarea></td> 
            </tr> 
       <tr><td><center><b>Captcha</b></center></td></tr> 
            <tr><td align="center">What's <?php echo $math; ?> = <input size="5" name="answer" type="text" /><br /></td></tr> 

            <tr> 
             <td align="center"> 


              <input type="submit" name="submit" value="Send Message"/></td> 
            </tr> 

           </table> 

          </form> 
       </div> 
         <body/> 
        </html> 
       </center> 
+0

Где captcha в форме? Единственное подтверждение, которое вы делаете перед отправкой, находится по электронной почте. – Barmar

+0

Это математическая Captcha как сумма должна быть решена во вводе, а затем она эхо, что если сумма была представлена ​​правильно или нет .... Что такое = генерируется сеансом .... можете ли вы что-нибудь порекомендовать .... –

+0

Вы проверяете капчу на сервере, а не на клиенте , Так как это может предотвратить подачу? – Barmar

ответ

0

Просто создайте $error переменную, которая устанавливается в ложь. Если captcha неверен, установите для него значение true.

только обрабатывать форму

Если вы хотите, чтобы проверить капчу (не знаю, почему) перед отправкой формы, вам нужно будет использовать Ajax, который вызывает PHP скрипт, который проверить это все.

+0

Можете ли вы рассказать, как использовать ajax в этой форме. как я не знаю об этом, и мне потребуется гораздо больше времени, чтобы завершить эту форму. –

Смежные вопросы