Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
legal2015
0 / 0 / 0
Регистрация: 14.01.2015
Сообщений: 16
1

Некорректно работает ReCAPTCHA

10.05.2017, 23:56. Просмотров 598. Ответов 16
Метки нет (Все метки)

Всем здравствуйте. Если что, заранее извините.
Прошу отнестись с пониманием и уважением.
Есть сайт, на сайте есть пару тройку форм обратной связи. Спам достал уж нету сил.
Сам не программист, но решил внедрить reCAPTCHA от Google в самостоятельно созданные формы обратной связи.
Капча не пашет..
Безусловно, любая работа должна быть вознаграждена. Однако в условиях кризиса могу предложить вариант "услуга за услугу". Кто поможет - обеспечу бесплатной квалифицированной юридической консультацией до конца текущего года (до 31.12.2017) и скидкой до 50% на представление интересов в суде по гражданским делам (при условии судебного разбирательства в пределах МКАД г. Москвы (писать если что в личку)
Конечно же хочется сделать так, чтобы проверка всех условий была без перезагрузки страниц.
Баловаться с формами можно тут (не на всех стоит капча):
1. http://lbolimp.ru/forma-obratnoj-svyazi/;
2. http://lbolimp.ru/zayavka-na-vyezd-yurista/;
3. http://lbolimp.ru/feedback/;
4. http://lbolimp.ru/razrabotka-dokumentov-onlajn/;
5. http://lbolimp.ru/forma-dogovora-kupli-prodazhi-avtomobilya/
Вот код:
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
<?php
    define('URL_FEEDBACK', 'http://lbolimp.ru/feedback');
    define('URL_LETSGO',   'http://lbolimp.ru/oplata-konsultatsij');
session_start();
 
$msg='';
if($_SERVER["REQUEST_METHOD"] == "POST")
{
    $recaptcha=$_POST['g-recaptcha-response'];
    if(!empty($recaptcha))
    {
        include("getCurlData.php");
        $google_url="https://www.google.com/recaptcha/api/siteverify";
        $secret='куча символов';
        $ip=$_SERVER['REMOTE_ADDR'];
        $url=$google_url."?secret=".$secret."&response=".$recaptcha."&remoteip=".$ip;
        $res=getCurlData($url);
        $res= json_decode($res, true);
        //reCaptcha введена
        if($res['success'])
        {
// Продолжаем проверку данных формы
            $name1=$name2=$name3=$email=$tel=$pravo=$body='';
       /* Здесь проверяется существование переменных */
            if (isset($_POST['name1'])) {$name1 = $_POST['name1'];}
            if (isset($_POST['name2'])) {$name2 = $_POST['name2'];}
            if (isset($_POST['name3'])) {$name3 = $_POST['name3'];}
            if (isset($_POST['email'])) {$email = $_POST['email'];}
            if (isset($_POST['tel']))   {$tel   = $_POST['tel'];}
            if (isset($_POST['pravo'])) {$pravo = $_POST['pravo'];}
            if (isset($_POST['body']))  {$body  = $_POST['body'];}
    $err = array(); // ошибки
    /* А эта функция занимается обработкой введённых данных в форме перед отправкой письма на указанный вами email */
        if (empty($name1)) {
           $err[]= "<p><span style='text-align: center; font-size: 20px; color: red;'><b>Не указана фамилия!</b></span></p>";
       }
        if (empty($name2)) {
    $err[]= "<p><span style='text-align: center; font-size: 20px; color: red;'><b>Не указано имя!</b></span></p>";
       }
        if (empty($name3)) {
        $err[]= "<p><span style='text-align: center; font-size: 20px; color: red;'><b>Не указано отчество!</b></span></p>";
       }
        if (empty($email)) {
        $err[]= "<p><span style='text-align: center; font-size: 20px; color: red;'><b>Не указан e-mail!</b></span></p>";
       }
        if (empty($tel)) {
        $err[]= "<p><span style='text-align: center; font-size: 20px; color: red;'><b>Не указан телефон!</b></span></p>";
       }
        if (empty($pravo)) {
        $err[]= "<p><span style='text-align: center; font-size: 20px; color: red;'><b>Не указана тема вопроса!</b></span></p>";
       }
        if (empty($body)) {
        $err[]= "<p><span style='text-align: center; font-size: 20px; color: red;'><b>Вы забыли написать комментарий?</b></span></p>";
       }
    /* если НЕТ ошибок */
    if (sizeof($err)==0)
    {
         /* Сюда впишите свою эл. почту */
         $address = "...@domen.ru";
         /* А здесь прописывается текст сообщения, \n - перенос строки */
         $mes = "Фамилия:  $name1 \nИмя:  $name2 \nОтчество:  $name3 \nE-mail: $email \nТелефон для связи: $tel \nВопрос о: $pravo \nКомментарий: $body";
         /* А эта функция как раз занимается отправкой письма на указанный вами email */
         $send = mail ($address,$pravo,$mes,"Content-type:text/plain; charset = utf-8\r\nFrom:$email");
    }
                else
        {
            $msg="Please re-enter your reCAPTCHA.";
        }
    }
    else
    {
        $msg="Please re-enter your reCAPTCHA.";
    }
}    
?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <?php if (sizeof($err)==0) { // no error ?>
        <meta http-equiv="refresh" content="10; url=<?php echo URL_LETSGO;?>">
    <?php } else { // error ?>
        <meta http-equiv="refresh" content="10; url=<?php echo URL_FEEDBACK;?>">
    <?php } ?>
      <title>Feedbackform</title> 
    </head>
    <body>
    <div align="center">
    <table border="0" cellspacing="0" cellpadding="20" width="650">
    <tr>
    <td align="center">
    <p style="color: blue; font-size: 15px;">
<?php
    if (sizeof($err)>0) { // errors
        echo "<a href='http://lbolimp.ru/feedback'><img src='http://lbolimp.ru/feedbackmess/image/trastornoobsesivo.jpg' style='border: 0px solid black; margin: 0px 0px 55px 0px;' width='300' height='190' title='Перейти'></a><img src='http://lbolimp.ru/partners/200x300.gif' alt='Юридическое бюро ОЛИМП' style='border: 0px solid black;' width='200' height='300'><br>\nК большому разочарованию, Ваше сообщение не отправлено.<BR> По всей видимости вы что-то и где-то не указали в форме.<br>\nВы будете перенаправлены обратно в течении 10 секунд. <br>\nНо вы можете не ждать и самостоятельно вернуться обратно<br>\n просто нажмите <a href='http://lbolimp.ru/feedback'>сюда</a><br>";
        echo join('<br />', $err);
        echo "<p><span style='text-align: center; font-size: 15px; color: red; text-decoration: underline;'><b>Убедительно просим Вас указывать все данные в форме.</b></span></p>";
    } else { // no errors
         /* А эта функция занимается выводом сообщения на экран после верного заполнения формы обратной связи и ошибки отправки сообщения */
         if ($send == 'true')
         {
          echo $a = "<a href='http://lbolimp.ru/usluga/yuridicheskaya-konsultatsiya-onlajn'><img src='http://lbolimp.ru/feedbackmess/image/Legal_advice_online(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://lbolimp.ru/oplata-konsultatsij/'>нажмите на эту ссылку</a>.<br>\n <img src='http://lbolimp.ru/partners/200x300.gif' alt='Юридическое бюро ОЛИМП' style='border: 0px solid black;' width='200' height='300'>";
         }
         else
         {
         echo $a = "<a href='http://lbolimp.ru/feedback'><img src='http://lbolimp.ru/feedbackmess/image/trastornoobsesivo.jpg' style='border: 0px solid black; margin: 0px 0px 55px 0px;' width='300' height='190' title='Перейти'></a><img src='http://lbolimp.ru/partners/200x300.gif' alt='Юридическое бюро ОЛИМП' style='border: 0px solid black;' width='200' height='300'><br>\nК большому разочарованию, Ваше сообщение не отправлено.<BR> По всей видимости что-то и где-то пошло не совсем так как надо.<br>\nВы будете перенаправлены обратно в течении 10 секунд. <br>\nНо вы можете не ждать и самостоятельно вернуться обратно<br>\n просто нажмите <a href='http://lbolimp.ru/feedback'>сюда</a><br>";
         }
    }
?>
       </p>
    </td>
    </tr>
    </table>
    </div>
    </body>
    </html>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.05.2017, 23:56
Ответы с готовыми решениями:

ReCAPTCHA внедрение. Как подключить reCAPTCHA от Google
Здравствуйте! Нашел интересный обработчик формы обратной связи, переписал....

Настройка - не работает google reCaptcha через Denwer
Кто знает что значит следующая ошибка ниже кода? Я так понимаю это что-то...

Некорректно работает код
Задача такая: создать страницу содержащуюю input type=&quot;text&quot;. Введенное...

Некорректно работает скрипт
Почему некорректно работает скрипт? Переменная $preview принимает только...

Некорректно работает пользовательская функция
всем привет! есть переменная $status, которой присваивается значение из бд 1...

16
Para bellum
Эксперт PHP
4141 / 3079 / 996
Регистрация: 06.01.2011
Сообщений: 8,999
11.05.2017, 09:23 2
А конкретно что не работает? Распечатайте, что возвращает Google, для начала:
PHP
1
var_dump($res);
Впишите это после 18-ой строки.

Добавлено через 10 секунд
А конкретно что не работает? Распечатайте, что возвращает Google, для начала:
PHP
1
var_dump($res);
Впишите это после 18-ой строки.
0
legal2015
0 / 0 / 0
Регистрация: 14.01.2015
Сообщений: 16
11.05.2017, 10:11  [ТС] 3
А конкретно что не работает? Распечатайте, что возвращает Google, для начала:
PHP
1
var_dump($res);
Впишите это после 18-ой строки.
Para bellum, а что и где я должен буду потом увидеть?

У меня форма отправляет и без галочки капчи и с галочкой... Т.е., что есть капча, что её нету... Клик на отправить и всё отправилось )))
0
Para bellum
Эксперт PHP
4141 / 3079 / 996
Регистрация: 06.01.2011
Сообщений: 8,999
11.05.2017, 11:33 4
Цитата Сообщение от legal2015 Посмотреть сообщение
а что и где я должен буду потом увидеть?
Когда нажмёте кнопку "Отправить" -- форма отправится на обработчик (на код, что Вы в первом сообщении привели). Там, на экране, всё и отобразится.
Цитата Сообщение от legal2015 Посмотреть сообщение
У меня форма отправляет и без галочки капчи и с галочкой
Письма отправляет? Или просто форма отправляется?
Форма должна отправиться, чтобы сервер мог её проверить.

В общем, скажите, что выведет на экран тот var_dump при отправке с галочкой и без.
0
legal2015
0 / 0 / 0
Регистрация: 14.01.2015
Сообщений: 16
12.05.2017, 00:20  [ТС] 5
Да ни чего он выводит... как отправляется, так и отправляется....
0
Para bellum
Эксперт PHP
4141 / 3079 / 996
Регистрация: 06.01.2011
Сообщений: 8,999
12.05.2017, 11:33 6
На какую строку var_dump вставили? И того ли файла?
0
legal2015
0 / 0 / 0
Регистрация: 14.01.2015
Сообщений: 16
12.05.2017, 15:20  [ТС] 7
Цитата Сообщение от Para bellum Посмотреть сообщение
На какую строку var_dump вставили? И того ли файла?
Цитата Сообщение от Para bellum Посмотреть сообщение
А конкретно что не работает? Распечатайте, что возвращает Google, для начала:
PHP
1
var_dump($res);
Впишите это после 18-ой строки.
Да ни чего он выводит... как отправляется, так и отправляется....
Иными словами: письмо отправить можно без нажатия на капчу. Письмо отправляется и получателю и отправителю.
Своего рода получается новая капча рассчитанная на адекватность и ответственность посетителей!

Добавлено через 31 минуту
Цитата Сообщение от legal2015 Посмотреть сообщение
Да ни чего он выводит...
закралась ошибка Должно было быть: НЕ выводит...
Цитата Сообщение от legal2015 Посмотреть сообщение
И того ли файла?
- того файла.
0
Para bellum
Эксперт PHP
4141 / 3079 / 996
Регистрация: 06.01.2011
Сообщений: 8,999
12.05.2017, 15:34 8
Вот это:
PHP
1
2
3
4
5
6
7
8
9
10
11
        $recaptcha=$_POST['g-recaptcha-response'];
 
        include("getCurlData.php");
        $google_url="https://www.google.com/recaptcha/api/siteverify";
        $secret='куча символов';
        $ip=$_SERVER['REMOTE_ADDR'];
        $url=$google_url."?secret=".$secret."&response=".$recaptcha."&remoteip=".$ip;
        $res=getCurlData($url);
 
        var_dump($res, $recaptcha);
        die;
Впишите где-нибудь после session_start и скажите, что выведет.
0
legal2015
0 / 0 / 0
Регистрация: 14.01.2015
Сообщений: 16
12.05.2017, 17:50  [ТС] 9
Я несколько видоизменил код:
PHP
1
        $mes = "Фамилия:  $name1 \nИмя:  $name2 \nОтчество:  $name3 \nE-mail: $email \nТелефон для связи: $tel \nВопрос о: $pravo \nКомментарий: $body";
И теперь стал он таким:
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
        $mes = '
<html>
<head>
  <title>Birthday Reminders for August</title>
</head>
<body>
<style>
.div {
    border: 1px solid red;
    margin: 20px auto;
    padding: 10px 10px 10px 10px;
    width: 630px;
}
.div table {
    border: 1px solid blue;
    width: 100%;
}
.div table thead {
    color: burlywood;
    background-color: aqua;
}
.div table tbody {
    color: #090f5d;
    background-color: #b3efac;
}
.div table p {
    margin: 0px 0px 0px 0px;
    padding: 0px 0px 0px 0px;
    font-size: 15px;
}
.div table thead td, tbody td {
    text-align: center;
}
.div table td:first-child {
    padding:5px;
    text-align:left;
    font-weight:bold;
    width:35%;
    border:2px solid #e5e3e3;
    color:#110000;
    vertical-align:initial;
    white-space:normal;
}
.div table td:last-child {
    padding:5px;
    text-align:left;
    width:65%;
    border:2px solid #e5e3e3;
    color:#110000;
    vertical-align:middle;
    white-space:normal;
}
</style>
    <body>
<div class="div">
    <table>
        <thead>
            <tr>    
                <td>
                    <p>Новый заказ на сайте </p>
                </td>
                <td>
                    <p>#1963</p>
                </td>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>
                <p>Контактное лицо (ФИО):</p>
                </td>
                <td>
                <p>$name</p>
                </td>
            </tr>
            <tr>
                <td>
                <p>Контактный телефон:</p>
                </td>
                <td>
                <p>$phone</p>
                </td>
            </tr>
            <tr>
                <td>
                <p>E-mail:</p>
                </td>
                <td>
                <p>$mail</p>
                </td>
            </tr>
            <tr>
                <td>
                <p>Избранная услуга:</p>
                </td>
                <td>
                <p>$serv</p>
                </td>
            </tr>
            <tr>
                <td>
                <p>Заданный вопрос:</p>
                </td>
                <td>
                <p>$question</p>
                </td>
            </tr>
        </tbody>
    </table>
</div>
</body>
</html>
';
        /* А эта функция как раз занимается отправкой письма на указанный вами email */
 
        $send = mail ($address,$pravo,$mes,"Content-type:text/plain; charset = utf-8\r\nFrom:$email");
И стало выписывать на белом экране:
Parse error: syntax error, unexpected end of file in /home/.../..../.../.../fail.php on line 247

При этом, если я указываю перед изменённым кодом вот это:
PHP
1
2
3
4
5
$headers  = 'MIME-Version: 1.0' . "\r\n";
        $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
        $headers[] = "$email";
        $headers[] = "$email";
        $headers[] = "$email";
то выписывает на белом экране:
Parse error: syntax error, unexpected end of file in /home/.../..../.../.../fail.php on line 248
При этом, что в первом случае (on line 247), что и во втором (on line 248) - это вот это: </html>.
Всё это выписывает, если я не ввожу код: var_dump($res);

Зачем код поменял? Цель - отправка ответного письма в красивом HTML коде (типа, как яндекс. деньги отправляет)

Я не фига не разбираюсь в том, куда я лезу... Но блин... жуть как интересно )))

Если я вставлю этот код:
PHP
1
2
 var_dump($res, $recaptcha);
        die;
Сервак не ляжет? Ну или сайт не рухнит? А то
PHP
1
die;
весьма напрягло...
____________________________
намутил я явно тут такое....

Добавлено через 14 минут
Вернул код в первоначальное состояние...
Встал в ступор...
Выписывает на белом экране:
Parse error: syntax error, unexpected end of file in /home/.../..../.../.../fail.php on line 250
При этом on line 250, это вот это: </html>

Цукерберг... А чего же раньше всё работало????
Вот эта форма:http://lbolimp.ru/feedback/
0
Para bellum
Эксперт PHP
4141 / 3079 / 996
Регистрация: 06.01.2011
Сообщений: 8,999
12.05.2017, 20:35 10
Цитата Сообщение от legal2015 Посмотреть сообщение
Сервак не ляжет? Ну или сайт не рухнит?
Нет. die прекращает работу экземпляра скрипта прямо на месте, где она вписана. Посмотрите, что выведет, и сразу уберёте.
0
legal2015
0 / 0 / 0
Регистрация: 14.01.2015
Сообщений: 16
12.05.2017, 21:28  [ТС] 11
Цитата Сообщение от Para bellum Посмотреть сообщение
Нет. die прекращает работу экземпляра скрипта прямо на месте, где она вписана. Посмотрите, что выведет, и сразу уберёте.
Поставил:
PHP
1
2
var_dump($res, $recaptcha);
        die;
Проверил. Может я не там смотрю? Но насколько я понимаю, это должно было отобразится в браузере сразу... Не прав ли я?
Но ответ вот такой всё равно: Parse error: syntax error, unexpected end of file in /home/.../..../.../.../fail.php on line 254
При этом on line 254, это вот это:
HTML5
1
</html>
Ну раньше не было же такого....
Убрал:
PHP
1
2
var_dump($res, $recaptcha);
        die;
0
Jewbacabra
Эксперт PHP
3495 / 2905 / 1301
Регистрация: 24.04.2014
Сообщений: 8,849
12.05.2017, 21:41 12
Цитата Сообщение от legal2015 Посмотреть сообщение
Parse error: syntax error, unexpected end of file in /home/.../..../.../.../fail.php on line 254
Скорее всего не закрыт if
PHP
1
2
3
4
<?php 
if (1 == 1) {
    //...
// } - нету
или что-то похожее
0
legal2015
0 / 0 / 0
Регистрация: 14.01.2015
Сообщений: 16
14.05.2017, 20:50  [ТС] 13
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Скорее всего не закрыт if
PHP
1
2
3
4
<?php 
if (1 == 1) {
    //...
// } - нету
или что-то похожее
Где ? Не вижу.. Вдоль и поперёк пропахал...

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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
<?php
 
    define('URL_FEEDBACK', 'http://lbolimp.ru/feedback');
    define('URL_LETSGO',   'http://lbolimp.ru/oplata-konsultatsij');
 
    session_start();
 
$msg='';
if($_SERVER["REQUEST_METHOD"] == "POST")
{
    $recaptcha=$_POST['g-recaptcha-response'];
    if(!empty($recaptcha))
    {
        include("getCurlData.php");
        $google_url="https://www.google.com/recaptcha/api/siteverify";
        $secret='бла бла бла';
        $ip=$_SERVER['REMOTE_ADDR'];
        $url=$google_url."?secret=".$secret."&response=".$recaptcha."&remoteip=".$ip;
        $res=getCurlData($url);     
        $res= json_decode($res, true);
        //reCaptcha введена
        if($res['success'])
        {
            // Продолжаем проверку данных формы
            $name1=$name2=$name3=$email=$tel=$pravo=$body='';
       /* Здесь проверяется существование переменных */
            if (isset($_POST['name1'])) {$name1 = $_POST['name1'];}
            if (isset($_POST['name2'])) {$name2 = $_POST['name2'];}
            if (isset($_POST['name3'])) {$name3 = $_POST['name3'];}
            if (isset($_POST['email'])) {$email = $_POST['email'];}
            if (isset($_POST['tel']))   {$tel   = $_POST['tel'];}
            if (isset($_POST['pravo'])) {$pravo = $_POST['pravo'];}
            if (isset($_POST['body']))  {$body  = $_POST['body'];}
 
    $err = array(); // ошибки
    /* А эта функция занимается обработкой введённых данных в форме перед отправкой письма на указанный вами email */
        if (empty($name1)) {
           $err[]= "<p><span style='text-align: center; font-size: 20px; color: red;'><b>Не указана фамилия!</b></span></p>";
       }
        if (empty($name2)) {
    $err[]= "<p><span style='text-align: center; font-size: 20px; color: red;'><b>Не указано имя!</b></span></p>";
       }
        if (empty($name3)) {
        $err[]= "<p><span style='text-align: center; font-size: 20px; color: red;'><b>Не указано отчество!</b></span></p>";
       }
        if (empty($email)) {
        $err[]= "<p><span style='text-align: center; font-size: 20px; color: red;'><b>Не указан e-mail!</b></span></p>";
       }
        if (empty($tel)) {
        $err[]= "<p><span style='text-align: center; font-size: 20px; color: red;'><b>Не указан телефон!</b></span></p>";
       }
        if (empty($pravo)) {
        $err[]= "<p><span style='text-align: center; font-size: 20px; color: red;'><b>Не указана тема вопроса!</b></span></p>";
       }
        if (empty($body)) {
        $err[]= "<p><span style='text-align: center; font-size: 20px; color: red;'><b>Вы забыли написать комментарий?</b></span></p>";
       }
 
    /* если НЕТ ошибок */
    if (sizeof($err)==0)
    {
         /* Сюда впишите свою эл. почту */
         $address = "questions@lbolimp.ru";
         /* А здесь прописывается текст сообщения, \n - перенос строки */
        $mes = "Фамилия:  $name1 \nИмя:  $name2 \nОтчество:  $name3 \nE-mail: $email \nТелефон для связи: $tel \nВопрос о: $pravo \nКомментарий: $body";
        /* А эта функция как раз занимается отправкой письма на указанный вами email */
        $send = mail ($address,$pravo,$mes,"Content-type:text/plain; charset = utf-8\r\nFrom:$email");
    }
            else
        {
            $msg="Please re-enter your reCAPTCHA.";
        }
    }
    else
    {
        $msg="Please re-enter your reCAPTCHA.";
    }
}    
?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <?php if (sizeof($err)==0) { // no error ?>
        <meta http-equiv="refresh" content="10; url=<?php echo URL_LETSGO;?>">
    <?php } else { // error ?>
        <meta http-equiv="refresh" content="10; url=<?php echo URL_FEEDBACK;?>">
    <?php } ?>
      <title>Feedbackform</title> 
    </head>
    <body>
    <div align="center">
    <table border="0" cellspacing="0" cellpadding="20" width="650">
    <tr>
    <td align="center">
    <p style="color: blue; font-size: 15px;">
<?php
    if (sizeof($err)>0) { // errors
        echo "<a href='http://lbolimp.ru/feedback'><img src='http://lbolimp.ru/feedbackmess/image/trastornoobsesivo.jpg' style='border: 0px solid black; margin: 0px 0px 55px 0px;' width='300' height='190' title='Перейти'></a><img src='http://lbolimp.ru/partners/200x300.gif' alt='Юридическое бюро ОЛИМП' style='border: 0px solid black;' width='200' height='300'><br>\nК большому разочарованию, Ваше сообщение не отправлено.<BR> По всей видимости вы что-то и где-то не указали в форме.<br>\nВы будете перенаправлены обратно в течении 10 секунд. <br>\nНо вы можете не ждать и самостоятельно вернуться обратно<br>\n просто нажмите <a href='http://lbolimp.ru/feedback'>сюда</a><br>";
        echo join('<br />', $err);
        echo "<p><span style='text-align: center; font-size: 15px; color: red; text-decoration: underline;'><b>Убедительно просим Вас указывать все данные в форме.</b></span></p>";
    } else { // no errors
         /* А эта функция занимается выводом сообщения на экран после верного заполнения формы обратной связи и ошибки отправки сообщения */
         if ($send == 'true')
         {
          echo $a = "<a href='http://lbolimp.ru/usluga/yuridicheskaya-konsultatsiya-onlajn'><img src='http://lbolimp.ru/feedbackmess/image/Legal_advice_online(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://lbolimp.ru/oplata-konsultatsij/'>нажмите на эту ссылку</a>.<br>\n <img src='http://lbolimp.ru/partners/200x300.gif' alt='Юридическое бюро ОЛИМП' style='border: 0px solid black;' width='200' height='300'>";
         }
         else
         {
         echo $a = "<a href='http://lbolimp.ru/feedback'><img src='http://lbolimp.ru/feedbackmess/image/trastornoobsesivo.jpg' style='border: 0px solid black; margin: 0px 0px 55px 0px;' width='300' height='190' title='Перейти'></a><img src='http://lbolimp.ru/partners/200x300.gif' alt='Юридическое бюро ОЛИМП' style='border: 0px solid black;' width='200' height='300'><br>\nК большому разочарованию, Ваше сообщение не отправлено.<BR> По всей видимости что-то и где-то пошло не совсем так как надо.<br>\nВы будете перенаправлены обратно в течении 10 секунд. <br>\nНо вы можете не ждать и самостоятельно вернуться обратно<br>\n просто нажмите <a href='http://lbolimp.ru/feedback'>сюда</a><br>";
         }
    }
?>
       </p>
    </td>
    </tr>
    </table>
    </div>
    </body>
</html>
0
Jewbacabra
Эксперт PHP
3495 / 2905 / 1301
Регистрация: 24.04.2014
Сообщений: 8,849
14.05.2017, 20:56 14
Цитата Сообщение от legal2015 Посмотреть сообщение
Вдоль и поперёк пропахал...
первый же if не закрыт
0
legal2015
0 / 0 / 0
Регистрация: 14.01.2015
Сообщений: 16
14.05.2017, 21:26  [ТС] 15
Если я правильно понял, то закрыл его в нужном месте:
PHP
1
2
3
4
5
6
7
8
else
    {
        $msg="Please re-enter your reCAPTCHA.";
    }
}
}
?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
И теперь стало выписывать:
Warning: include(getCurlData.php): failed to open stream: No such file or directory in /home/.../.../.../.../feedback.php on line 14

Warning: include(): Failed opening 'getCurlData.php' for inclusion (include_path='.:/home/lbolimp/lbolimp.ru/php') in /home/.../.../.../.../feedback.php on line 14

Fatal error: Call to undefined function getCurlData() in /home/.../.../.../.../feedback.php on line 19
А это тот самый getCurlData.php:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
<?php
function getCurlData($url)
{
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_TIMEOUT, 10);
    curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16");
    $curlData = curl_exec($curl);
    curl_close($curl);
    return $curlData;
}

Мне эти кракозябры ни чего не говорят, однако хочу докапаться до истины и сделать так, тчобы форма работала на отлично.
0
Jewbacabra
Эксперт PHP
3495 / 2905 / 1301
Регистрация: 24.04.2014
Сообщений: 8,849
14.05.2017, 22:50 16
Цитата Сообщение от legal2015 Посмотреть сообщение
Warning: include(getCurlData.php): failed to open stream: No such file or directory
Указывай полный путь к подключаемому файлу, используя магическую константу __DIR__

Добавлено через 49 секунд
Цитата Сообщение от legal2015 Посмотреть сообщение
Мне эти кракозябры ни чего не говорят
Это плохо, умение читать сообщения об ошибках очень важно
0
legal2015
0 / 0 / 0
Регистрация: 14.01.2015
Сообщений: 16
15.05.2017, 00:36  [ТС] 17
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Указывай полный путь к подключаемому файлу, используя магическую константу __DIR__

Добавлено через 49 секунд

Это плохо, умение читать сообщения об ошибках очень важно
Я знаю, что плохо. Но я могу в основном читать кракозябры в законах и вижу то, что не видят многие юристы. А эта тема... по необходимости и как хобби...

Добавлено через 16 минут
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Указывай полный путь к подключаемому файлу, используя магическую константу __DIR__
Во дурак я... мда.. файл не залил туда, куда нужно, а потом и бошку ломал...
Пашет, нормуль... Буду дальше магией заниматься, чтобы красивое HTML письмо приходило )))

Добавлено через 7 минут
Цитата Сообщение от Para bellum Посмотреть сообщение
Вот это:
PHP
1
2
3
4
5
6
7
8
9
10
11
        $recaptcha=$_POST['g-recaptcha-response'];
 
        include("getCurlData.php");
        $google_url="https://www.google.com/recaptcha/api/siteverify";
        $secret='куча символов';
        $ip=$_SERVER['REMOTE_ADDR'];
        $url=$google_url."?secret=".$secret."&response=".$recaptcha."&remoteip=".$ip;
        $res=getCurlData($url);
 
        var_dump($res, $recaptcha);
        die;
Впишите где-нибудь после session_start и скажите, что выведет.
После вставки var_dump($res,);
Пишет:
array(3) { ["success"]=> bool(true) ["challenge_ts"]=> string(20) "2017-05-14T21:13:57Z" ["hostname"]=> string(10) "имя_домена.ru" }


Полагаю, что всё работает нормально, просто нужно доработать код малость...

А вот в таком виде:
PHP
1
2
var_dump($res, $recaptcha);
        die;
Извольте, но не буду выкладывать

P.S."Хоть и не совсем рублю что к чему, но схватываю всё быстро..."

Добавлено через 4 минуты
В общем код нужно ещё править, т.к. если не нажать капчу, то переход на страницу с сообщением о том, что: "что-то пошло не так как надо..." и переходит на страницу как будь то бы всё хорошо. Т.е. не возвращается на страницу формы заново.
0
15.05.2017, 00:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.05.2017, 00:36

Некорректно работает задержка sleep()
Есть код : echo &quot;text_1&quot;; sleep(5); echo &quot;text_2&quot;;

Некорректно работает функция замены
Здравствуйте! Имеется задача: Вводится текст в форму, который...

Некорректно работает команда mail()
Написал обработчик для формы заказа обратного звонка, но на почту приходят...


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

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

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