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

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

03.07.2018, 15:46. Просмотров 56. Ответов 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
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Сброс Каптчи после отправки формы обратной связи (PHP):

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

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

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

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

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

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

1
alexsamos33
617 / 597 / 326
Регистрация: 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
Привет! Вот еще темы с решениями:

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

очистка формы после отправки. КАК? То есть после нажатия на кнопку или что? Как реализовать?
// если форма без ошибок if(empty($errors)){ // собираем данные из формы $message = &quot;Имя пользователя: &quot; . $_POST . &quot;&lt;br/&gt;&quot;; ...

Сохранение значения select и работоспособность второго select после отправки формы
Добрый вечер!Есть проблемка-не могу сохранить значение селекта,сохранив работоспособность др.селектов после отправки формы....страну...

Форма обратной связи
Здравствуйте, вот недавно поставил форму обратной связи, работает, отправляет сообщения на мою почту. Теперь хочу добавить туда загрузку...


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

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

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