Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Капча срабатывает со второго раза

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
vadsim
Отправлено: 26 Февраля, 2017 - 20:15:03
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Февр. 2017  


Помог: 0 раз(а)




Добрый вечер!
Помогите, но особо не пинайте.
На сайте (на htm) есть форма обратной связи (обработчик на php, сама форма и страницы: ошибка, сообщение отправлено - на htm).
Когда все поля формы заполнены, вводится код в окно капчи и с первого раза сообщение не отправляется, если снова вернуться в форму и ввести новую капчу (старая обновилась), то все нормально, сообщение уходит и теперь пока на сайте, то сообщения со всех страниц отправляются сразу и сколько хочешь.
Но при первом заходе на сайт или после его закрытия, а потом снова открытия, то все повторяется снова. Т.е. форма отправляет сообщение только со второго раза.
Но если при первом заходе обновить страницу формы (Ctrl+F5), то все нормально, сообщение уходит сразу.
Где-то нашел, что надо в .htaccess добавить строку для автостарта сессии php:
php_value session.auto_start 1
Но это ни чего не дало - отправляет только со второго раза.
Сам сайт fаnаtgusyаtnik.ru
Помогите пожалуйста с этой проблемой.
Если потребуется, то могу выложить файл обработчика на php,
В php почти ни бум-бум.

Извините. Исправил.
Конечно не капча срабатывает со 2-го раза, а форма отправляет со второго раза.

(Отредактировано автором: 28 Февраля, 2017 - 10:15:19)

 
 Top
ЧИМ
Отправлено: 27 Февраля, 2017 - 13:15:00
Post Id


Новичок


Покинул форум
Сообщений всего: 49
Дата рег-ции: Дек. 2016  


Помог: 0 раз(а)




vadsim пишет:
Добрый вечер!
Помогите, но особо не пинайте.
На сайте (на htm) есть форма обратной связи (обработчик на php, сама форма и страницы: ошибка, сообщение отправлено - на htm).
Когда все поля формы заполнены, вводится код в окно капчи и с первого раза сообщение не отправляется, если снова вернуться в форму и ввести новую капчу (старая обновилась), то все нормально, сообщение уходит и теперь пока на сайте, то сообщения со всех страниц отправляются сразу и сколько хочешь.
Но при первом заходе на сайт или после его закрытия, а потом снова открытия, то все повторяется снова.
Т.е. форма отправляет сообщение только со второго раза.
Где-то нашел, что надо в .htaccess добавить строку для автостарта сессии php:
php_value session.auto_start 1
Но это ни чего не дало - отправляет только со второго раза.
Сам сайт http://fаnаtgusyаtnik[dot]ru
Помогите пожалуйста с этой проблемой.
Если потребуется, то могу выложить файл обработчика на php,
В php почти ни бум-бум.

Извините. Исправил.
Конечно не капча срабатывает со 2-го раза, а форма отправляет со второго раза.


1. Ссылка на сайт не работает
2. Выложите код обработчика формы на всякий случай
 
 Top
vadsim
Отправлено: 27 Февраля, 2017 - 19:21:33
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Февр. 2017  


Помог: 0 раз(а)




ЧИМ пишет:
1. Ссылка на сайт не работает
2. Выложите код обработчика формы на всякий случай

1. Почему-то вместо точки - dot в скобках. Вместо dot в скобках поставьте просто точку.
2. При отключенной капче все нормально. Значит дело не в обработчике php, а в index.php для капчи.
Вот он:

<?php

error_reporting (E_ALL);

/* Using:

<?php
session_start();
?>
<form action="./" method="post">
<p>Enter text shown below:</p>
<p><img src="PATH-TO-THIS-SCRIPT?<?php echo session_name()?>=<?php echo session_id()?>"></p>
<p><input type="text" name="keystring"></p>
<p><input type="submit" value="Check"></p>
</form>
<?php
if(count($_POST)>0){
if(isset($_SESSION['captcha_keystring']) && $_SESSION['captcha_keystring'] == $_POST['keystring']){
echo "Correct";
}else{
echo "Wrong";
}
}
unset($_SESSION['captcha_keystring']);
?>

*/

include('kcaptcha.php');

if(isset($_REQUEST[session_name()])){
session_start();
}

$captcha = new KCAPTCHA();

if($_REQUEST[session_name()]){
$_SESSION['captcha_keystring'] = $captcha->getKeyString();
}

?>

Что в нем может быть не так?

(Отредактировано автором: 27 Февраля, 2017 - 19:22:58)

 
 Top
ЧИМ
Отправлено: 27 Февраля, 2017 - 22:30:25
Post Id


Новичок


Покинул форум
Сообщений всего: 49
Дата рег-ции: Дек. 2016  


Помог: 0 раз(а)




1. Такое ощущение, что у тебя в сессию заносится сгенерированная капча, а потом после загрузки страницы, она у тебя снова генерируется и по этому в первый раз не совпадает.
2. Такая примитивная капча не спасает от ботов. Если боты нащупают ваш сайт, то спам повалит по 50 а то и более писем за день*проверено). Нужно более изящные способы проверки делать.
 
 Top
vadsim
Отправлено: 28 Февраля, 2017 - 09:28:38
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Февр. 2017  


Помог: 0 раз(а)




ЧИМ пишет:
Такое ощущение, что у тебя в сессию заносится сгенерированная капча, а потом после загрузки страницы, она у тебя снова генерируется и по этому в первый раз не совпадает.

Даже если зайти в форму, сначала обновить рисунок кода и заполнить форму, то сообщение с первого раза не отправляется.

ЧИМ пишет:
Такая примитивная капча не спасает от ботов. Если боты нащупают ваш сайт, то спам повалит по 50 а то и более писем за день*проверено

Хозяин сайта далек от инета, ни в каких соцсетях и форумах, да и вообще ни где не зарегистрирован. Почти года за 3 в день проходит 1-2 бота, не более, а то и вовсе ни чего.
Но сейчас речь не об этом.
Так можно как-то что-то поправить?
Помогите пожалуйста.
(Добавление)
Забыл.
Если при первом заходе обновить страницу формы (Ctrl+F5), то все нормально, сообщение уходит сразу.

(Отредактировано автором: 28 Февраля, 2017 - 09:39:06)

 
 Top
ЧИМ
Отправлено: 28 Февраля, 2017 - 11:42:56
Post Id


Новичок


Покинул форум
Сообщений всего: 49
Дата рег-ции: Дек. 2016  


Помог: 0 раз(а)




1.Скинь сюда ещё код капчи, чтоб не догадываться что там у тебя в функциях запихано.
2. В этой строке "<form action="./" method="post">" я бы всё таки прописал конкретный файл, в вашем случае я так понимаю это index.php.
 
 Top
vadsim
Отправлено: 28 Февраля, 2017 - 12:22:45
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Февр. 2017  


Помог: 0 раз(а)




Все. Проблема решилась.
На одном из форумов написали мне код для этого index.php:

<?php
error_reporting (E_ALL);
session_start();
include('kcaptcha.php');
$captcha = new KCAPTCHA();
$_SESSION['captcha_keystring'] = $captcha->getKeyString();
?>

Заменил и все стало нормально.
Всем спасибо.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB