За последние 24 часа нас посетили 16542 программиста и 1642 робота. Сейчас ищут 1186 программистов ...

требуется помощь по интеграции капчи

Тема в разделе "Сделайте за меня", создана пользователем legal, 23 янв 2015.

  1. legal

    legal Новичок

    С нами с:
    14 янв 2015
    Сообщения:
    10
    Симпатии:
    0
    Адрес:
    Москва
    Всем привет.
    Несколько озадачен был установкой капчи от гугла, и в связи с этим возник вопрос:
    - как интегрировать эту reCAPTCHA от https://www.google.com/recaptcha/intro/index.html к себе на сайт?
    Есть форма обратной связи, в нужном месте включен был предлагаемый код гугла, но почему-то не пашет он...
    Т.е. при нажатии кнопки отправить - всё замечательно отправляется, но без проверки капчи.
    Может найдутся люди способные помочь в этом вопросе?
    Вот кусочек кода в форме:
    Код (Text):
    1.         <td colspan="5" align="center">
    2.             <div class="g-recaptcha" data-sitekey="здесь указан ключ"></div>
    3.         &nbsp;
    4.         </td>
    5.     </tr>
    6.     <tr>
    7.         <td colspan="3" align="right"><input type="submit" onclick="yaCounter13454020.reachGoal('FBQuestions'); return true;" value="Отправить" /></td>
    8.     </tr>
    И ещё.
    Весьма интересно было бы сделать так, чтобы после отправки данных с формы и проверки капчи сообщение об успешности или не удачи отправки данных выводились бы на этой же странице, т.е. на странице этой же формы.
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    А кто форму обрабатывает?
     
  3. legal

    legal Новичок

    С нами с:
    14 янв 2015
    Сообщения:
    10
    Симпатии:
    0
    Адрес:
    Москва
    другой файл :)
    Код (Text):
    1. <?php
    2.     define('URL_FEEDBACK', 'http://www.1.ru/feedback.php');
    3.     define('URL_LETSGO',   'http://www.1.ru/letsgo.php');
    4.  
    5.     $name1=$name2=$name3=$email=$tel=$pravo=$body='';
    6.        /* Здесь проверяется существование переменных */
    7.        if (isset($_POST['name1'])) {$name1 = $_POST['name1'];}
    8.        if (isset($_POST['name2'])) {$name2 = $_POST['name2'];}
    9.        if (isset($_POST['name3'])) {$name3 = $_POST['name3'];}
    10.        if (isset($_POST['email'])) {$email = $_POST['email'];}
    11.        if (isset($_POST['tel']))   {$tel   = $_POST['tel'];}
    12.        if (isset($_POST['pravo'])) {$pravo = $_POST['pravo'];}
    13.        if (isset($_POST['body']))  {$body  = $_POST['body'];}
    14.  
    15.     $err = array(); // ошибки
    16.  
    17.     /* А эта функция занимается обработкой введённых данных в форме перед отправкой письма на указанный вами email */
    18.        if (empty($name1)) {
    19.            $err[]= "<p><span style='text-align: center; font-size: 15px; color: red;'><b>Не указана фамилия!</b></span></p>";
    20.        }
    21.        if (empty($name2)) {
    22.     $err[]= "<p><span style='text-align: center; font-size: 15px; color: red;'><b>Не указано имя!</b></span></p>";
    23.        }
    24.        if (empty($name3)) {
    25.         $err[]= "<p><span style='text-align: center; font-size: 15px; color: red;'><b>Не указано отчество!</b></span></p>";
    26.        }
    27.        if (empty($email)) {
    28.         $err[]= "<p><span style='text-align: center; font-size: 15px; color: red;'><b>Не указан e-mail!</b></span></p>";
    29.        }
    30.        if (empty($tel)) {
    31.         $err[]= "<p><span style='text-align: center; font-size: 15px; color: red;'><b>Не указан телефон!</b></span></p>";
    32.        }
    33.        if (empty($pravo)) {
    34.         $err[]= "<p><span style='text-align: center; font-size: 15px; color: red;'><b>Не указана тема вопроса!</b></span></p>";
    35.        }
    36.        if (empty($body)) {
    37.         $err[]= "<p><span style='text-align: center; font-size: 15px; color: red;'><b>Вы забыли написать комментарий?</b></span></p>";
    38.        }
    39.  
    40.     /* если НЕТ ошибок */
    41.     if (sizeof($err)==0)
    42.     {
    43.          /* Сюда впишите свою эл. почту */
    44.          $address = "questions@www.1.ru";
    45.          /* А здесь прописывается текст сообщения, \n - перенос строки */
    46.          $mes = "Фамилия:  $name1 \nИмя:  $name2 \nОтчество:  $name3 \nE-mail: $email \nТелефон для связи: $tel \nВопрос о: $pravo \nКомментарий: $body";
    47.          /* А эта функция как раз занимается отправкой письма на указанный вами email */
    48.          $send = mail ($address,$pravo,$mes,"Content-type:text/plain; charset = utf-8\r\nFrom:$email");
    49.     }
    50.    
    51. ?>
    52.     <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    53.     <html xmlns="http://www.w3.org/1999/xhtml">
    54.     <head>
    55.       <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    56.     <?php if (sizeof($err)==0) { // no error ?>
    57.         <meta http-equiv="refresh" content="10; url=<?php echo URL_LETSGO;?>">
    58.     <?php } else { // error ?>
    59.         <meta http-equiv="refresh" content="10; url=<?php echo URL_FEEDBACK;?>">
    60.     <?php } ?>
    61.       <title>Feedbackform</title>
    62.     </head>
    63.     <body>
    64.     <div align="center">
    65.     <table border="0" cellspacing="0" cellpadding="20" width="650">
    66.     <tr>
    67.     <td align="center">
    68.     <p style="color: blue; font-size: 20px;">
    69. <?php
    70.     if (sizeof($err)>0) { // errors
    71.         echo join('<br />', $err);
    72.         echo "<p><span style='text-align: center; font-size: 15px; color: red; text-decoration: underline;'><b>Убедительно просим Вас указывать все данные в форме.</b></span></p>";
    73.     } else { // no errors
    74.          /* А эта функция занимается выводом сообщения на экран после верного заполнения формы обратной связи и ошибки отправки сообщения */
    75.          if ($send == 'true')
    76.          {
    77.           echo $a = "<a href='http://www.1.ru/letsgo'><img src='http://xxx.ru/feedbackmess/image/xxx(500x221).png' border=0 title='Перейти'></a><br>\n<br>\nВаша заявка принята.<br>\nСообщение успешно отправлено.<br><br>\nВы будете перенаправлены на форму оплаты в течении 10 секунд.<br>\n<br>\nЕсли не хотите ждать, а хотите перейти к оплате сразу,<br>\n <a href='http://www.1.ru/letsgo>нажмите на эту ссылку</a>.<br>\n <img src='http://xxx.ru/partners/200x300.gif' alt='xxx' style='border: 0px solid black;' width='200' height='300'>";
    78.          }
    79.          else
    80.          {
    81.          echo $a = "<a href='http://www.1.ru/feedback'><img src='http://xxx.ru/feedbackmess/image/xxx.jpg' style='border: 0px solid black; margin: 0px 0px 55px 0px;' width='300' height='190' title='Перейти'></a><img src='http://xxx.ru/partners/200x300.gif' alt='xxx' style='border: 0px solid black;' width='200' height='300'><br>\nК большому разочарованию, Ваше сообщение не отправлено.<BR> По всей видимости что-то и где-то пошло не совсем так как надо.<br>\nВы будете перенаправлены обратно в течении 10 секунд. <br>\nНо вы можете не ждать и самостоятельно вернуться обратно<br>\n просто нажмите <a href='http://www.1.ru/feedback'>сюда</a><br>";
    82.          }
    83.     }
    84. ?>
    85.        </p>
    86.     </td>
    87.     </tr>
    88.     </table>
    89.     </div>
    90.     </body>
    91.     </html>
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  5. legal

    legal Новичок

    С нами с:
    14 янв 2015
    Сообщения:
    10
    Симпатии:
    0
    Адрес:
    Москва
    Мне PHP чуждо ;) Я не понимаю как мне сделать всё так, как надо.
     
  6. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Скачай файл recaptchalib.php тут https://github.com/google/ReCAPTCHA/tree/master/php

    Заполни, siteKey и secret выдаёт гугл для твоего сайта
    require_once "recaptchalib.php";
    // Register API keys at https://www.google.com/recaptcha/admin
    $siteKey = "";
    $secret = "";

    Встроить в форму
    Заполни data-sitekey

    Код (PHP):
    1.       <div class="g-recaptcha" data-sitekey="ТУТ_siteKey"></div>
    2.       <script type="text/javascript"
    3.           src="https://www.google.com/recaptcha/api.js?hl=ru">
    4.       </script>
    Может будет работать
    Код (PHP):
    1. <?php
    2.     define('URL_FEEDBACK', 'http://www.1.ru/feedback.php');
    3.     define('URL_LETSGO',   'http://www.1.ru/letsgo.php');
    4.  
    5. // ********************************
    6. require_once "recaptchalib.php";
    7. // Register API keys at https://www.google.com/recaptcha/admin
    8. $siteKey = "";
    9. $secret = "";
    10. // reCAPTCHA supported 40+ languages listed here: https://developers.google.com/recaptcha/docs/language
    11. $lang = "en";
    12. // The response from reCAPTCHA
    13. $resp = null;
    14. // The error code from reCAPTCHA, if any
    15. $error = null;
    16. $reCaptcha = new ReCaptcha($secret);
    17. // Was there a reCAPTCHA response?
    18. if ($_POST["g-recaptcha-response"]) {
    19.     $resp = $reCaptcha->verifyResponse(
    20.         $_SERVER["REMOTE_ADDR"],
    21.         $_POST["g-recaptcha-response"]
    22.     );
    23. }
    24. // ********************************
    25.  
    26.     $name1=$name2=$name3=$email=$tel=$pravo=$body='';
    27.        /* Здесь проверяется существование переменных */
    28.        if (isset($_POST['name1'])) {$name1 = $_POST['name1'];}
    29.        if (isset($_POST['name2'])) {$name2 = $_POST['name2'];}
    30.        if (isset($_POST['name3'])) {$name3 = $_POST['name3'];}
    31.        if (isset($_POST['email'])) {$email = $_POST['email'];}
    32.        if (isset($_POST['tel']))   {$tel   = $_POST['tel'];}
    33.        if (isset($_POST['pravo'])) {$pravo = $_POST['pravo'];}
    34.        if (isset($_POST['body']))  {$body  = $_POST['body'];}
    35.  
    36.     $err = array(); // ошибки
    37.  
    38.     /* А эта функция занимается обработкой введённых данных в форме перед отправкой письма на указанный вами email */
    39.        if (empty($name1)) {
    40.            $err[]= "<p><span style='text-align: center; font-size: 15px; color: red;'><b>Не указана фамилия!</b></span></p>";
    41.        }
    42.        if (empty($name2)) {
    43.     $err[]= "<p><span style='text-align: center; font-size: 15px; color: red;'><b>Не указано имя!</b></span></p>";
    44.        }
    45.        if (empty($name3)) {
    46.         $err[]= "<p><span style='text-align: center; font-size: 15px; color: red;'><b>Не указано отчество!</b></span></p>";
    47.        }
    48.        if (empty($email)) {
    49.         $err[]= "<p><span style='text-align: center; font-size: 15px; color: red;'><b>Не указан e-mail!</b></span></p>";
    50.        }
    51.        if (empty($tel)) {
    52.         $err[]= "<p><span style='text-align: center; font-size: 15px; color: red;'><b>Не указан телефон!</b></span></p>";
    53.        }
    54.        if (empty($pravo)) {
    55.         $err[]= "<p><span style='text-align: center; font-size: 15px; color: red;'><b>Не указана тема вопроса!</b></span></p>";
    56.        }
    57.        if (empty($body)) {
    58.         $err[]= "<p><span style='text-align: center; font-size: 15px; color: red;'><b>Вы забыли написать комментарий?</b></span></p>";
    59.        }
    60.  
    61.         if ($resp != null && $resp->success)
    62.         {           
    63.         }
    64.         else
    65.         {
    66.           $err[]= "<p><span style='text-align: center; font-size: 15px; color: red;'><b>ошибка каптчи</b></span></p>";
    67.         }
    68.  
    69.     /* если НЕТ ошибок */
    70.     if (sizeof($err)==0)
    71.     {
    72.          /* Сюда впишите свою эл. почту */
    73.          $address = "questions@www.1.ru";
    74.          /* А здесь прописывается текст сообщения, \n - перенос строки */
    75.          $mes = "Фамилия:  $name1 \nИмя:  $name2 \nОтчество:  $name3 \nE-mail: $email \nТелефон для связи: $tel \nВопрос о: $pravo \nКомментарий: $body";
    76.          /* А эта функция как раз занимается отправкой письма на указанный вами email */
    77.          $send = mail ($address,$pravo,$mes,"Content-type:text/plain; charset = utf-8\r\nFrom:$email");
    78.     }
    79.     
    80. ?>
    81.     <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
    82.     <html xmlns="http://www.w3.org/1999/xhtml">
    83.     <head>
    84.       <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    85.     <?php if (sizeof($err)==0) { // no error ?>
    86.         <meta http-equiv="refresh" content="10; url=<?php echo URL_LETSGO;?>">
    87.     <?php } else { // error ?>
    88.         <meta http-equiv="refresh" content="10; url=<?php echo URL_FEEDBACK;?>">
    89.     <?php } ?>
    90.       <title>Feedbackform</title> 
    91.     </head>
    92.     <body>
    93.     <div align="center">
    94.     <table border="0" cellspacing="0" cellpadding="20" width="650">
    95.     <tr>
    96.     <td align="center">
    97.     <p style="color: blue; font-size: 20px;">
    98. <?php
    99.     if (sizeof($err)>0) { // errors
    100.         echo join('<br />', $err);
    101.         echo "<p><span style='text-align: center; font-size: 15px; color: red; text-decoration: underline;'><b>Убедительно просим Вас указывать все данные в форме.</b></span></p>";
    102.     } else { // no errors
    103.          /* А эта функция занимается выводом сообщения на экран после верного заполнения формы обратной связи и ошибки отправки сообщения */
    104.          if ($send == 'true')
    105.          {
    106.           echo $a = "<a href='http://www.1.ru/letsgo'><img src='http://xxx.ru/feedbackmess/image/xxx(500x221).png' border=0 title='Перейти'></a><br>\n<br>\nВаша заявка принята.<br>\nСообщение успешно отправлено.<br><br>\nВы будете перенаправлены на форму оплаты в течении 10 секунд.<br>\n<br>\nЕсли не хотите ждать, а хотите перейти к оплате сразу,<br>\n <a href='http://www.1.ru/letsgo>нажмите на эту ссылку</a>.<br>\n <img src='http://xxx.ru/partners/200x300.gif' alt='xxx' style='border: 0px solid black;' width='200' height='300'>";
    107.          }
    108.          else
    109.          {
    110.          echo $a = "<a href='http://www.1.ru/feedback'><img src='http://xxx.ru/feedbackmess/image/xxx.jpg' style='border: 0px solid black; margin: 0px 0px 55px 0px;' width='300' height='190' title='Перейти'></a><img src='http://xxx.ru/partners/200x300.gif' alt='xxx' style='border: 0px solid black;' width='200' height='300'><br>\nК большому разочарованию, Ваше сообщение не отправлено.<BR> По всей видимости что-то и где-то пошло не совсем так как надо.<br>\nВы будете перенаправлены обратно в течении 10 секунд. <br>\nНо вы можете не ждать и самостоятельно вернуться обратно<br>\n просто нажмите <a href='http://www.1.ru/feedback'>сюда</a><br>";
    111.          }
    112.     }
    113. ?>
    114.        </p>
    115.     </td>
    116.     </tr>
    117.     </table>
    118.     </div>
    119.     </body>
    120.     </html>