2016-01-01 2 views
0

Я знаю, что это, возможно, было отправлено до (извините) У меня есть базовая форма, это идентификатор детали, который нужно отправить, однако я не могу заставить reCaptcha работать с ним. У меня есть googled весь день, но когда я пробую код других людей (поправку, чтобы соответствовать моим), он, похоже, не работает.Форма контакта с reCaptcha

Я хотел бы: имя, адрес электронной почты, номер, информационный бюллетень (да/нет) и recaptcha для отправки/работы.

Может кто-нибудь, пожалуйста, дайте мне понять, где я, возможно, ошибаюсь? что я могу добавить?

Заранее благодарен!

Вот моя форма (HTML)

<form method="POST" action="Form_Activation.php"> 
    <div class="form-group"> 
     <label for="name">Name:</label> 
      <input type="text" class="form-control" id="name" name="name" placeholder="Full Name"  value="" required/> 
     </div> 
     <div class="form-group"> 
      <label for="email">Email:</label> 
      <input type="email" class="form-control" id="email" name="email" value=""  placeholder="[email protected]" required/> 
     </div> 
     <div class="form-group"> 
      <label for="number">Number:</label> 
      <input class="form-control" name="number" id="number" value="" placeholder="Contact   Number" required/> 
     </div> 
     <div class="form-group"> 
      <label for="message">Message:</label> 
      <textarea class="form-control" name="message" id="message" placeholder="Enter  Message.." required></textarea> 
     </div> 
     <div class="form-group"> 
      <input type="checkbox"/> <b> Subscribe to Newsletter</b> 
     </div> 
     <div class="g-recaptcha" data-sitekey="6Le2SBQTAAAAADIOrUEPpcEVvR_c0vN9GzQpLg05"></div> 
     <button type="submit" class="btn btn-default sendbutton">SEND</button> 
     </form> 

Вот мой PHP (базовый)

<?php 
    $name = $_POST['name']; 
    $email = $_POST['email']; 
    $number = $_POST['number']; 
    $message = $_POST['message']; 

    //$password = $_POST['password']; 

    //$keyy = $_SERVER['UNIQUE_ID']; 


    $msg = "Name: $name\r\n \r\n"; 

    $msg .= "Email: $email\r\n \r\n"; 

    $msg .= "Number: $number\r\n \r\n"; 

    $msg .= "Message: $message\r\n \r\n"; 

    $recipient = "[email protected]"; 
    $subject = "New Website Request"; 
    $mailheaders = "From:$email"; 
    //$mailheaders .= "Reply-To:$email"; 
    mail($recipient,$subject,$msg,$mailheaders); 
    header("Location: contactus.php?msg=1"); 
    ?> 
+1

Я не вижу проверки recaptcha в вашем php –

+0

Какую версию recaptcha вы используете? V1 или V2? –

+0

не может быть намного проще: https://github.com/google/recaptcha –

ответ

0

Прежде всего убедитесь, что вы включили необходимый ресурс JavaScript для визуализации ReCaptcha виджет должным образом, как это:

<html> 
    <head> 
    <title>reCAPTCHA demo: Simple page</title> 
    <script src="https://www.google.com/recaptcha/api.js" async defer></script> 
    </head> 
    <body> 
    <form action="?" method="POST"> 
     <div class="g-recaptcha" data-sitekey="your_site_key"></div> 
     <br/> 
     <input type="submit" value="Submit"> 
    </form> 
    </body> 
</html> 

Вот ссылка:

Теперь приходит ответ вашего пользователя. Ответ на вызов captcha пользователя можно получить тремя способами. Это может быть как,

Теперь идет ответ вашего пользователя. Ответ на вызов captcha пользователя можно получить тремя способами. Это может быть как,

  • г-Recaptcha-ответ - параметр POST в представленном виде
  • grecaptcha.getResponse (WIDGET_ID) - обеспечит ответ после того, как пользователь завершает искаженным.
  • Строковый аргумент функции обратного вызова, указанный в объекте конфигурации, переданном методу визуализации.

Вот ссылка:

Для вашей цели использовать г-ReCaptcha-ответ, чтобы получить ответ пользователя. Так что ваш код должен быть таким:

HTML

<form method="POST" action="Form_Activation.php"> 
    <div class="form-group"> 
    <label for="name">Name:</label> 
     <input type="text" class="form-control" id="name" name="name" placeholder="Full Name" value="" required/> 
    </div> 
    <div class="form-group"> 
     <label for="email">Email:</label> 
     <input type="email" class="form-control" id="email" name="email" value="" placeholder="[email protected]" required/> 
    </div> 
    <div class="form-group"> 
     <label for="number">Number:</label> 
     <input class="form-control" name="number" id="number" value="" placeholder="Contact Number" required/> 
    </div> 
    <div class="form-group"> 
     <label for="message">Message:</label> 
     <textarea class="form-control" name="message" id="message" placeholder="Enter Message.." required></textarea> 
    </div> 
    <div class="form-group"> 
     <input type="checkbox"/> <b> Subscribe to Newsletter</b> 
    </div> 
    <div class="g-recaptcha" data-sitekey="6Le2SBQTAAAAADIOrUEPpcEVvR_c0vN9GzQpLg05"></div> 
    <button type="submit" name="submit" class="btn btn-default sendbutton">SEND</button> 
</form> 

Добавьте атрибут name в вашей кнопки отправки.

Form_Activation.PHP

<?php 

    if(isset($_POST['submit'])){ 

     //your site secret key 
     $secret = 'XXXXXXX_Secret-key_XXXXXXX'; 

     if(isset($_POST['g-recaptcha-response']) && !empty($_POST['g-recaptcha-response'])){ 
      //get verified response data 
      $param = "https://www.google.com/recaptcha/api/siteverify?secret=".$secret."&response=".$_POST['g-recaptcha-response']; 
      $verifyResponse = file_get_contents($param); 
      $responseData = json_decode($verifyResponse); 

      if($responseData->success){ 
       // success 

       $name = $_POST['name']; 
       $email = $_POST['email']; 
       $number = $_POST['number']; 
       $message = $_POST['message']; 

       // so on 

      }else{ 
       // failure 
      } 

     } 

    } 

?> 

Не забудьте добавить свой секретный ключ в $secret переменной.

+0

Я действительно предлагаю вам использовать: https://github.com/google/recaptcha –

+0

Спасибо @Rajdeep. Как насчет флажка? также мне нужны сообщения «so on /« failure », если да, не уверены, что положить? Извините: -/ – JoeyG

+0

моя страница Form_Activation.php просто гаснет .... это проблема, с которой я столкнулся раньше. – JoeyG

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