2013-07-17 6 views
0

У меня есть две php-формы на одной странице, теперь проблема заключается в том, что я вызываю их через iframe, но там captcha не работает, хотя я использую тот же скрипт для обеих форм с разными полями ввода. Прямо сейчас, что происходит, когда мы нажимаем первый раз на captcha и пишем правильный captcha, он берет нас к ВАМ, ВХОДЯ В НЕПРАВИЛЬНУЮ КАПЧУ, а затем мы заполняем правильную капчу, а затем показываем нам благодарность ... Почему бы не показать спасибо в первый раз, когда мы входим Правильный захват ??????Две формы PHP на одной странице

  <?php 
      session_start(); 
      $tuCurl = curl_init(); 
      curl_setopt($tuCurl, CURLOPT_URL, $url); 
      curl_setopt($tuCurl, CURLOPT_RETURNTRANSFER, 1);  
      $tuData = curl_exec($tuCurl); 
      curl_close($tuCurl); 
      $userip = explode(',',$tuData); 
      $ipcountry = str_replace('"', '', $userip[3]); 

      include "libmail.php"; 
      $errors = ''; 
      //print_r($_POST); 
      if(isset($_POST['email'])) 
      { 
       if(empty($_SESSION['6_letters_code']) || 
        strcasecmp($_SESSION['6_letters_code'], $_POST['captcha']) != 0) 
       { 
        $errors .= "You have entered wrong captcha code!"; 
       }elseif($_FILES["userfile"]["size"] > 1048576) 
       { 
        $errors .= "You can upload maximum of 800kb file!"; 
       }else{ 

         $productsq  = $_POST['productsq']; 
        $name  = $_POST['name']; 
        $position  = $_POST['position']; 
        $phone  = $_POST['phone']; 

        $company = $_POST['company']; 
        $companyweb = $_POST['companyweb']; 
        $address = $_POST['address']; 
        $country = $_POST['country']; 
            $brief  = $_POST['brief']; 
        $email  = $_POST['email']; 


        $captcha = $_POST['captcha']; 

        $sender = $contact_email; 

        function clean_string($string) { 
         $bad = array("content-type","bcc:","to:","cc:","href"); 
         return str_replace($bad,"",$string); 
        } 

        if(trim($productsq) !='') 
         $email_message .= "*I'm interested in : ".clean_string($productsq)."\n"."\n"; 

        if(trim($name) !='') 
         $email_message .= "Full Name: ".clean_string($name)."\n"."\n"; 

           if(trim($position) !='') 
         $email_message .= "Position/Title: ".clean_string($position)."\n"."\n"; 

              if(trim($phone) !='') 
         $email_message .= "Phone: ".clean_string($phone)."\n"."\n"; 

        if(trim($company) !='') 
         $email_message .= "Company Name: ".clean_string($company)."\n"."\n"; 

         if(trim($companyweb) !='') 
         $email_message .= "Website URL: ".clean_string($companyweb)."\n"."\n"; 


        if(trim($address) !='') 
         $email_message .= "Full Address: ".clean_string($address)."\n"."\n"; 


        if(trim($country) !='') 
         $email_message .= "Country: ".clean_string($country)." (IP Address) : $ipcountry ".$_SERVER['REMOTE_ADDR']."\n"."\n"; 



        if(trim($brief) !='') 
         $email_message .= "About Myself : ".clean_string($brief)."\n"."\n"; 

        $random = mt_rand(); 
        $m= new Mail; // create the mail 
        $m->From($name."<$email>"); 
        $m->To("[email protected]"); 

        $m->Subject("Form2 - ".$random); 

        $m->Body($email_message); 
        $m->Priority(2) ; 

        if($_FILES["userfile"]["tmp_name"]){ 
         move_uploaded_file($_FILES["userfile"]["tmp_name"], 'uploadedfiles/'.$_FILES["userfile"]["name"]); 
         $file_upload = 'uploadedfiles/'.$_FILES["userfile"]["name"]; 
         $m->Attach($file_upload) ; 
        } 
        $m->Send(); 
       header('location:thankyou.php'); 
        if($_FILES["userfile"]["tmp_name"]){ 
         unlink($file_upload); 
        } 
       } 
      } 


      ?> 

ответ

1

Код изображения captcha обычно хранится в переменной сеанса. Когда вы показываете вторую форму, вы переписываете капчу из первой формы.

+0

Тогда сэр может посоветовать мне, что делать? на самом деле m не знает о кодах php слишком много pls sir –

+0

Либо не используйте 2 captchas на той же странице или дайте им разные имена в сеансе. – Rob

+0

попробуйте с другим именем переменной capca для обеих форм –

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