Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Форма обратной связи отпраляет сообщение со второго раза

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

simagin

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброе утро Уважаемые!
Решите пожалуйста проблему. Сам я с php. мягко говоря, не очень.
На сайте (на htm) есть форма обратной связи (обработчик на php, сама форма и страницы: ошибка, сообщение отправлено - на htm).
Когда все поля формы заполнены, вводится код в окно капчи и с первого раза сообщение не отправляется, если снова вернуться в форму и ввести новую капчу (старая обновилась), то все нормально, сообщение уходит и теперь пока на сайте, то сообщения со всех страниц отправляются сразу и сколько хочешь.
Но при первом заходе на сайт или после его закрытия, а потом снова открытия, то все повторяется снова. Т.е. форма отправляет сообщение только со второго раза.
Но если при первом заходе обновить страницу формы (Ctrl+F5), то все нормально, сообщение уходит сразу.
Где-то нашел, что надо в .htaccess добавить строку для автостарта сессии php:
php_value session.auto_start 1
Но это ни чего не дало - отправляет только со второго раза.
Отключил капчу и все стало работать нормально. Значит скорее всего проблема в файле index.php, который отвечает за капчу и расположен в папке captcha
Сам сайт fаnаtgusyаtnik.ru
Помогите (исправьте) пожалуйста эту проблему.
Если надо, то скажите какие еще файлы выложить.
Сам 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();
}
 
?>

Всего записей: 150 | Зарегистр. 13-02-2007 | Отправлено: 09:05 28-02-2017 | Исправлено: simagin, 11:22 28-02-2017
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
simagin
это не сработает с формой на чистом html, так как форма должна использовать id запущенной сессии для генерации url скрипта капчи. сессия запускается только после постинга, вот и не срабатывает в первый раз.
 
вообще данный вариант капчи изначально сделан через одно место.
 
форма как выдается? у вас в комментах в коде пример того, как она должна выглядеть

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 09:22 28-02-2017 | Исправлено: Mavrikii, 09:23 28-02-2017
simagin

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
это не сработает с формой на чистом html

Дело в том, что она работала нормально года 3 и вот неделю назад появилась такая проблема. На хостинге исправить не смогли.
Форма была взята где-то из сети, сейчас уже концов не найти, и адаптирована для данного сайта.
И все таки, как-то можно заставить ее работать нормально?

Всего записей: 150 | Зарегистр. 13-02-2007 | Отправлено: 09:37 28-02-2017
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
simagin

Цитата:
И все таки, как-то можно заставить ее работать нормально?

для начала - показать как форму выводите.

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 09:45 28-02-2017
simagin

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
показать как форму выводите

Не понял, то есть...

Всего записей: 150 | Зарегистр. 13-02-2007 | Отправлено: 09:52 28-02-2017
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
simagin

Цитата:
Не понял, то есть..

код формы где?  
выводите ее через php, как в примере указано.

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 09:53 28-02-2017 | Исправлено: Mavrikii, 09:54 28-02-2017
simagin

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
код формы где?

Сама форма на htm. Я не знаю как здесь прикрепить файл, но можно зайти на этот сайт fаnаtgusyаtnik.ru, справа вверху "Написать мне письмо" и Вы окажетесь на форме, а на ней правой кнопкой мыши "Исходный код страницы".
Там же можете и отправить сообщение. Я их контролирую и в любое время удалю.
 
Добавлено:
Забыл
Если при первом заходе обновить страницу формы (Ctrl+F5), то все нормально, сообщение уходит сразу.
 
Добавлено:
Все. Проблема решилась.
На одном из форумов написали мне код для этого index.php:
 
<?php
error_reporting (E_ALL);
session_start();
include('kcaptcha.php');
$captcha = new KCAPTCHA();
$_SESSION['captcha_keystring'] = $captcha->getKeyString();
?>
 
Заменил и все стало нормально.
Всем спасибо.

Всего записей: 150 | Зарегистр. 13-02-2007 | Отправлено: 10:02 28-02-2017
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » Форма обратной связи отпраляет сообщение со второго раза


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru