Помогите понять причину ошибки

D
На сайте с 28.06.2008
Offline
1114
673

Господа у меня на сайте есть куча форм обратной связи, которые работали больше года и в ус не дули. Но тут я замитил что в последний месяц не приходят письма через формы. Пошел посмотреть - а формы стали выдавать - "не правильно введена капча".

Показал знакомым программистам - они разводят руками.... Может быть кто-нибудь поймет куда рыть?

Вот форма попробуйте что-нить через нее отправить.

Вот код файла отвечающего за форму:

T
На сайте с 20.03.2007
Offline
67
Toy
#1

Что-то в последний месяц меняли на сервере? Например обновлялось ли ПО?

В прикрепленном файле проверка капчи нормальная, нужно дебажить

D
На сайте с 28.06.2008
Offline
1114
#2

У меня ВДС с панелью ISP - она периодически сама обновлятся. Вот конфиг пхп, в нем увеличивал

post_max_size = 512M

upload_max_filesize = 512M

чтобы базы восстанавливать большие, больше вроде ничего не трогал.

PB
На сайте с 29.11.2007
Offline
40
#3

Я конечно далеко не гуру php, но все же вставлю 5 копеек, когда открываешь код странички в виде html то среди тегов высвечивается строка <?php session_start(); ?> а должен ли ее видеть клиент?

а именно в куске :

<?php session_start(); ?>

<img src="http://www.rus-trip.ru/includes/kcaptcha/index.php?session_name()=session_id()"

alt="Включите показ картинок в браузере" />

<br />

<label for="contact_captcha">

Введите код с картинки:

</label>

<br />

C
На сайте с 28.01.2010
Offline
70
#4


if(!isset($_SESSION['captcha_keystring']) ||
$_SESSION['captcha_keystring']!==$_POST['captcha']){
unset($_SESSION['captcha_keystring']);
mosErrorAlert('Вы должны корректно ввести код с картинки.');
}

замените на


if (!isset($_SESSION['captcha_keystring'])) {
mosErrorAlert('session variable not set');
}

if ($_SESSION['captcha_keystring']!==$_POST['captcha']) {
mosErrorAlert('captcha not valid. real captcha: '.$_SESSION['captcha_keystring'].', entered: '.$_POST['captcha']);
}

и покажите какую ошибку выведет

добавлено:

PLSB опередил. В куске $captcha=" <?php session_start(); ?> ахтунг :) но подобная конструкция не могла работать, поэтому кто-то что-то все же менял.

Это - личная подпись. Здесь обычно ставят ссылки на всякие кривые сайты, надеясь получить "жирный бек".
T
На сайте с 20.03.2007
Offline
67
Toy
#5

PLSB, вы совершенно правы! Строка 107, её удалить и инициализировать сессию вначале файла session_start();

D
На сайте с 28.06.2008
Offline
1114
#6

Вот что выводит

jpg 84311.jpg
C
На сайте с 28.01.2010
Offline
70
#7

Но судя по ошибке, POST данные не передаются туда, куда нужно.

В коде у вас написано:


echo "<form action='".sefRelToAbs("index.php?option=com_akoforms&func=processform&Itemid=$itemid")."'

а в исходном коде идет


<form action='http://www.rus-trip.ru/component/option,com_akoforms/func,processform/Itemid,/'

Насколько я понимаю, проблема в том, что цифра этого самого itemid, куда-то теряется.

Предполагаю, что это может быть ошибка в модуле, который делает ЧПУ (он всегда у вас был установлен?)

D
На сайте с 28.06.2008
Offline
1114
#8

Модуль ЧПУ всегда был включен.

НО я недавно настраивал перадресацию .htaccess чтобы пофиксить дубли

Вот она:

ErrorDocument 404 http://www.rus-trip.ru/content/view/876/2/
RewriteRule ^content/view/(.*)/1(.*)$ 404.html [L]
RewriteRule ^content/view/(.*)/3(.*)$ 404.html [L]
RewriteRule ^content/view/(.*)/4(.*)$ 404.html [L]
RewriteRule ^content/view/(.*)/5(.*)$ 404.html [L]
RewriteRule ^content/view/(.*)/6(.*)$ 404.html [L]
RewriteRule ^content/view/(.*)/7(.*)$ 404.html [L]
RewriteRule ^content/view/(.*)/8(.*)$ 404.html [L]
RewriteRule ^content/view/(.*)/9(.*)$ 404.html [L]
RewriteRule ^content/view/(.*)/0(.*)$ 404.html [L]
RewriteRule ^content/category/1(.*)/(.*)/(.*)$ 404.html [L]
RewriteRule ^content/category/3(.*)/(.*)/(.*)$ 404.html [L]
RewriteRule ^content/category/4(.*)/(.*)/(.*)$ 404.html [L]
RewriteRule ^content/category/5(.*)/(.*)/(.*)$ 404.html [L]
RewriteRule ^content/category/6(.*)/(.*)/(.*)$ 404.html [L]
RewriteRule ^content/category/7(.*)/(.*)/(.*)$ 404.html [L]
RewriteRule ^content/category/8(.*)/(.*)/(.*)$ 404.html [L]
RewriteRule ^content/category/9(.*)/(.*)/(.*)$ 404.html [L]
RewriteRule ^content/category/0(.*)/(.*)/(.*)$ 404.html [L]
RewriteRule ^content/category/2/(.*)/1(.*)$ 404.html [L]
RewriteRule ^content/category/2/(.*)/3(.*)$ 404.html [L]
RewriteRule ^content/category/2/(.*)/4(.*)$ 404.html [L]
RewriteRule ^content/category/2/(.*)/5(.*)$ 404.html [L]
RewriteRule ^content/category/2/(.*)/6(.*)$ 404.html [L]
RewriteRule ^content/category/2/(.*)/7(.*)$ 404.html [L]
RewriteRule ^content/category/2/(.*)/8(.*)$ 404.html [L]
RewriteRule ^content/category/2/(.*)/9(.*)$ 404.html [L]
RewriteRule ^content/category/2/(.*)/0(.*)$ 404.html [L]
RewriteRule ^content/view/([0-9]+)/$ /content/view/$1/2 [R=301,L]
RewriteRule ^content/view/([0-9]+)$ /content/view/$1/2 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ /$1 [R=301,L]

Dram добавил 24-02-2011 в 17:58

А вот что хостер ответил про ПОСТ запросы:

На текущий момент POST-запросы на Вашем сервере выполняются без каких-либо

препятствий:

http://www.rus-trip.ru/test.html

В случае с формой на странице

http://www.rus-trip.ru/component/option,com_akoforms/func,showform/formid,9

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

Вами самостоятельно, или же автоматически, в ходе обновления панели isp

настройки(такие, как значения переменных variables_order, post_max_size и

upload_max_filesize в конфигурации php - файл php.ini). Уточнить данный

момент, а также принять необходимые меры для исправления ситуации Вам

необходимо самостоятельно, усилиями штатного программиста.

Dram добавил 24.02.2011 в 21:59

Вот корень зла RewriteRule ^(.+)/$ /$1 [R=301,L]

эта строка мешала работе

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий