Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP
Войти
Регистрация
Восстановить пароль
 
SweetAlready
0 / 0 / 0
Регистрация: 27.06.2018
Сообщений: 7
1

Сброс Каптчи после отправки формы обратной связи

03.07.2018, 15:46. Просмотров 82. Ответов 1

Как сбросить капчу, не могу разобраться.
Нашел выражение grecaptcha.reset();
но не понял, как его вызвать.

Вызов формы:
PHPHTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<a class="linkButtonphone" data-remodal-target="firstModal" title="Заказать обратный звонок">Заказать обратный звонок <img class="tel-logo" src="<?=SITE_TEMPLATE_PATH?>/images/tel.png"/></a>
 
 
<div class="remodal" data-remodal-id="firstModal" data-remodal-options="hashTracking: false,closeOnConfirm: false">
  <button data-remodal-action="close" class="remodal-close"></button>
  <div class="formArea">
    <p class="formTitle">Оставьте ваши контактные данные и наш консультант свяжется с вами</p>
    <p class="msgs"></p>
    <form id="firstForm" class="form" autocomplete="off">
      <fieldset class="form-fieldset ui-input __first">
        <input name="uname" type="text" id="username" tabindex="0" />
        <label for="username">
          <span data-text="Введите ваше имя">Введите ваше имя</span>
        </label>
      </fieldset>
      
      <fieldset class="form-fieldset ui-input __second">
        <input name="uphone" type="phone" id="phone" tabindex="0" />
        <label for="phone">
          <span data-text="Введите ваш телефон">Введите ваш телефон</span>
        </label>
      </fieldset>
 
      <fieldset class="form-fieldset ui-input __third">
        <input name="uemail" type="email" id="email" tabindex="0" />
        <label for="email">
          <span data-text="Введите ваш e-mail">Введите ваш e-mail</span>
        </label>
      </fieldset>
      
      <fieldset class="form-fieldset ui-input __fourth">
        <textarea name="utxt" type="txt" id="txt" tabindex="0"></textarea>
        <label for="txt">
          <span data-text="Введите ваш запрос">Введите ваш запрос</span>
        </label>
      </fieldset>
 
      <input name="formInfo" class="formInfo" type="hidden" value=""/>
      <!-- DIV - в котором выводится блок с recaptcha -->
      <div class="g-recaptcha" data-sitekey="Ключ каптчи" data-theme="light" id="recaptcha"></div>
      <div class="form-footer">
        <input type="submit" class="formBtn" value="Узнать цену" />
      </div>
    </form>
  </div>
</div>
 
<script type="text/javascript">
$(".linkButton").click(function() {
    $( "input[name*='formInfo']" ).val($(this).attr( "title" ));
    grecaptcha.reset();
    $("input[type=text], textarea").val("");
});
</script>
<script src="/remodal.min.js"></script>
<script src="/js/form.js"></script>
Обработчик mail.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<?php
require_once __DIR__ . '/recaptchalib.php';
// Введите свой секретный ключ
$secret = "Ключ каптчи";
// пустой ответ каптчи
$response = null;
// Проверка вашего секретного ключа
$reCaptcha = new ReCaptcha($secret);
if ($_POST["g-recaptcha-response"]) {
$response = $reCaptcha->verifyResponse(
        $_SERVER["REMOTE_ADDR"],
        $_POST["g-recaptcha-response"]
    );
}
 
$pageURL = $_SERVER['SERVER_NAME'];
$pagereferer = $_SERVER['HTTP_REFERER'];
$userip = $_SERVER['REMOTE_ADDR'];
$userhttp = $_SERVER['HTTP_USER_AGENT'];
 
if ($_SERVER["REQUEST_METHOD"] == "POST") {
  if (empty($_POST['uphone'])){
    echo '<p class="fail">Ошибка. Вы заполнили не все обязательные поля!</p>';
  } else {
    if ($response != null && $response->success) {
    if (isset($_POST['uname'])) {
      $uname = strip_tags($_POST['uname']);
      $unameFieldset = "<b>Имя пославшего:</b>";
    }
    if (isset($_POST['uemail'])) {
      $uemail = strip_tags($_POST['uemail']);
      $uemailFieldset = "<b>Почта:</b>";
    }
    if (isset($_POST['uphone'])) {
      $uphone = strip_tags($_POST['uphone']);
      $uphoneFieldset = "<b>Телефон:</b>";
    }
    if (isset($_POST['utxt'])) {
      $utxt = strip_tags($_POST['utxt']);
      $utxtFieldset = "<b>Запрос:</b>";
    }
    if (isset($_POST['formInfo'])) {
      $formInfo = strip_tags($_POST['formInfo']);
      $formInfoFieldset = "<b>Тема:</b>";
    }
    
    $to = "почта"; /*Укажите адрес, на который должно приходить письмо*/
    $sendfrom = "почта"; /*Укажите адрес, с которого будет приходить письмо, можно не настоящий, нужно для формирования заголовка письма*/
    $headers  = "From: " . strip_tags($sendfrom) . "\r\n";
    $headers .= "Reply-To: ". strip_tags($sendfrom) . "\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: text/html;charset=utf-8 \r\n";
    $headers .= "Content-Transfer-Encoding: 8bit \r\n";
    $subject = "$formInfo";
    $txt = $_POST["utxt"];
    $message = "$unameFieldset $uname<br>
                $uemailFieldset $uemail<br>
                $uphoneFieldset $uphone<br>
                $utxtFieldset $utxt<br>
                <b>Откуда перешел:</b> $pageURL<br>
                <b>Ссылка страницы:</b> $pagereferer<br>
                <b>IP пользователя:</b> $userip<br>
                <b>Браузер:</b> $userhttp";
 
    $send = mail ($to, $subject, $message, $headers);
        if ($send == 'true') {
            echo '<p class="success">Спасибо за отправку вашего сообщения!</p>';
            return $response;
        } else {
          echo '<p class="fail"><b>Ошибка. Сообщение не отправлено!</b></p>';
        }
    } else {
      echo '<p class="success">Не пройдена каптча! Попробуйте еще раз!</p>';
      return $response;
    }
  }
}
?>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.07.2018, 15:46
Ответы с готовыми решениями:

Очистка полей формы обратной связи после отправки
Как сделать так, чтобы после отправки поля формы очищались? или же реализовать...

Форма обратной связи без отправки на e-mail
Я не знаю как сделать так, чтобы форма создавала файл (.htm/.txt) а не...

Формы обратной связи?
Здравствуйте, помогите пожалуйста создать две формы обратной связи! Чтобы...

UTF-8 для формы обратной связи
Здравствуйте! Я работаю над формой обратной связи с отправкой на электронную...

Идёт спам с формы обратной связи. Как исправить?
Всем привет! Есть такой сайтик : http://oprteam.ru/ На нём 17 форм...

1
alexsamos33
618 / 598 / 325
Регистрация: 26.04.2014
Сообщений: 1,968
05.07.2018, 16:09 2
click повесь на кнопку .formBtn или submit на форму #firstForm
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.07.2018, 16:09

Изменение сообщения при отправке формы обратной связи
Есть страница &lt;?PHP if (!empty($_POST)){ $myemail =...

Mail.php отправляет пустой текст из формы обратной связи на сайте
Добрый день. Есть форма обратной связи на сайте, скрипт js и mail.php. Сам...

очистка формы после отправки. КАК? То есть после нажатия на кнопку или что? Как реализовать?
// если форма без ошибок if(empty($errors)){ // собираем данные из формы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru