Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
8 / 8 / 4
Регистрация: 12.05.2014
Сообщений: 233
1

Работа с капчей. Что не так?

08.11.2015, 04:08. Показов 660. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Сделал капчу при добавлении комментариев и не могу соединить это все в 1. Если капча введена правильно - отсылаем комментарий, иначе - не отсылаем(форма не должна отсылаться, когда капча неверна).
Сейчас ошибку мне выдает на 10 строке. - скрин ошибки
Файл comments
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if (isset($_POST["captcha"])) {
    if ($_POST["captcha"] == $_SESSION["code"]) {   
        echo "Комментарий добавлен";
            $name     = $_POST['com_name'];
            $message  = $_POST['com_mess'];
            $hotel     = $_GET['id'];
              
            $query = 'INSERT INTO comments (hotel_id, text, name) VALUES (:hotel, :message, :name)';
            $stmt = $pdo->prepare($query);
            $stmt->execute(array(':hotel'=>$hotel, ':message'=>$message, ':name'=>$name));    
 
    } else {
    die ("Неверно введена капча");
    }
 }
js файл

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$('#send_com').click(function() {
  
    var name = $('#com_name').val();
    var email = $('#com_email').val();
    var message = $('#com_mess').val();
    var captcha = $("#captcha").val();
 
          var dataString = 'captcha=' + captcha;
          $.ajax({
          type: "POST",
          url: "check_captcha.php",
          data: dataString,
          success: function(html) {
          alert(html);
          },
          })
  
  });
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.11.2015, 04:08
Ответы с готовыми решениями:

Работа с капчей
Кто знает как обойти такую капчу? кот картинка вот что на странице видно <table border="0"...

Работа с капчей
Доброго времени суток Собственно суть проблемы мне нужно спарсить HTML заголовок капчи Вот...

Выбрасывает на верх страницы, работа с капчей
Выбрасывает вверх страницы, когда жмешь по ссылке показать другую капчу...

Работа с капчей через HttpWebRequest и HttpWebResponse
Здравствуйте. ситуация следующая - я хочу разобраться с работой HttpWebRequest и HttpWebResponse....

8
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
08.11.2015, 11:13 2
terri, а где тут передаются данные? Я вижу POST запрос на скрипт check_captcha.php, в запросе передается всего одна переменная - captcha. А скрипт пытается засунуть данные $_POST['com_name'], $_POST['com_mess'], $_GET['id'] в БД. Вот только откуда они возьмутся? SQL Вам так и пишет - пытаетесь засунуть пустое значение в ячейку таблицы, которая не может содержать пустого значения.

Советую включить отображение ВСЕХ ошибок. Тогда бы на эти строчки у Вас появились варнинги и Вы сразу бы все поняли:
PHP
1
2
3
            $name     = $_POST['com_name'];
            $message  = $_POST['com_mess'];
            $hotel     = $_GET['id'];
Включать хотя бы на время отладки.
0
8 / 8 / 4
Регистрация: 12.05.2014
Сообщений: 233
08.11.2015, 13:35  [ТС] 3
pav1uxa, добавил в условие на 2-й строке
(isset($_POST['com_name'] !='') и так далее - не работает
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
08.11.2015, 14:43 4
Цитата Сообщение от terri Посмотреть сообщение
добавил в условие на 2-й строке
(isset($_POST['com_name'] !='') и так далее - не работает
Естественно. От добавления проверки был ли передан параметр передаваться он не станет.
0
8 / 8 / 4
Регистрация: 12.05.2014
Сообщений: 233
08.11.2015, 15:23  [ТС] 5
Jewbacabra, вы предлагаете поставить условие в 1 строку? Как бы переменные я определил, что-то не хочет
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
08.11.2015, 15:45 6
terri, нет. Еще раз:
передается только
Javascript
1
2
3
var dataString = 'captcha=' + captcha;
// ...
data: dataString,
А в запросе используется еще и
PHP
1
2
3
4
5
$name     = $_POST['com_name'];
            $message  = $_POST['com_mess'];
            $hotel     = $_GET['id'];
              
            $query = 'INSERT INTO comments (hotel_id, text, name) VALUES (:hotel, :message, :name)';
И что ему вставлять в бд, если ничего не передано?
0
8 / 8 / 4
Регистрация: 12.05.2014
Сообщений: 233
08.11.2015, 17:30  [ТС] 7
Jewbacabra, передавать в таком виде?
Javascript
1
data: "captcha="+captcha+"&com_name="+name+"&com_email="+email ???
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
08.11.2015, 17:38 8
terri, да, но лучше в виде объекта
Javascript
1
2
3
4
5
data: {
    captcha: captcha,
    com_name: name,
    com_email: email
}
0
8 / 8 / 4
Регистрация: 12.05.2014
Сообщений: 233
08.11.2015, 17:44  [ТС] 9
Jewbacabra, а в файле comments.php( в первом посте) все верно?
0
08.11.2015, 17:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.11.2015, 17:44
Помогаю со студенческими работами здесь

Работа с капчей при авторизации регистрации на mail.ru
В общем пытаюсь я программно зарегистрироваться на mail.ru. Отловил запрос, переписал в...

Работа с Timer-ом, что не так?
Привет всем! Народ гляньте пожалуйста, кто шарить, что не так с кодом не работает Timer. Что...

работа с функциями.что-то не так.
выдает ошибку: неоднозначный вызов перегруженной функции. в чем дело? #include "stdafx.h"...

Что здесь не так? (Работа с файлами)
И снова здрасьте, написал процедурку, которая проверяет 1 или 0 находится в файле, что-бы понять,...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru