Сайт на ОпенСлаед 1.3.
Добавил новый модуль, подключил функцию комментариев в просмотрах: show_com($id)
Но почему-то они не записываются. Ошибок нет и сама функция show_com() работает правильно. А вот дальше, данные из формы должны обработаться функцией save_com, но они туда не поступают. После нажатия на кнопку "Разместить комментарий" сайт переходит на первую страницу модуля.
В тоже время у модуля новости всё работает нормально.
В чём может быть проблема?
Ссылка на страницу где комментарий не добавляется battle-wizards.ru/asgard-view-5.html работающий комментарий (в новостях) battle-wizards.ru/novosti-view-23.html
В чём может быть проблема?
Подключил функцию комментариев в своём модуле, не срабатывает POST запрос
Проверяли, комментарии записываются в базу?
Код модуля можете показать?
О сколько нам открытий чудных,
Готовит просвещенья дух,
И опыт, сын ошибок трудных,
И гений, парадоксов друг...
в базу не пишется, в логах ошибок нет.
function view() {
....
show_com($id);
.....
}
функция show_com(). Стандартная. Все данные в неё заносятся. Пробовал выводить значения переменных после формы - все переменные вывелись с верными значениями.
echo "<form name=\"post\" action=\"index.php?name=".$conf['name']."\" method=\"post\" OnSubmit=\"ButtonDisable(this)\">";
if (is_user()) {
echo "<div class=\"left\">"._YOURNAME.":</div><div class=\"center\">".text_filter(substr($user[1], 0, 25))."</div>";
} else {
echo "<div class=\"left\">"._YOURNAME.":</div><div class=\"center\"><input type=\"text\" name=\"postname\" value=\"".$confu['anonym']."\" size=\"65\" maxlength=\"25\" class=\"".$conf['name']."\"></div>";
}
echo "<div class=\"left\">"._COMMENT.":</div><div class=\"center\">".textarea("1", "comment", "", $conf['name'], "5")."</div>"
."".captcha_random().""
."<div class=\"button\"><input type=\"hidden\" name=\"cid\" value=\"$cid\">
<input type=\"hidden\" name=\"op\" value=\"save_com\">
<input type=\"submit\" value=\""._COMMENTREPLY."\" class=\"fbutton\"></div></form>";
функция save_com() стандартная . В неё данные не поступают
В функции save_com следует внести изменения с учётом вашего нового модуля.
Сейчас она сохраняет комментарии только для модулей: файлы, новости, опросы.
Рекомендую в конфигурациях системы активировать "Анализатор переменных", поможет в выявлении проблемных мест. Если конечно в теме оформления в файле index.html не удалён участок: {%BLOCKS variables%}
О сколько нам открытий чудных,
Готовит просвещенья дух,
И опыт, сын ошибок трудных,
И гений, парадоксов друг...
нет смысла вносить туда изменения. Так как эта функция почему-то не вызывается. В этом весь и вопрос.
Я её даже полностью закоментировал добавив
echo "Коментарии отключены";
в блоке новостей отрабатывается правильно
а в блоке асгард не хочет.
анализатор переменных после нажатия на кнопку показывает:
GET - name=asgard
POST - postname=Guest, comment=проверка, family=Шрифт, color=Цвет, size=Размер, check=593584, cid=99, op=save_com
а может быть что-то из-за настроек в файлах конфиг_рерайт и .htaccess ?
Вполне возможно, попробуйте отключить ЧПУ.а может быть что-то из-за настроек в файлах конфиг_рерайт и .htaccess
О сколько нам открытий чудных,
Готовит просвещенья дух,
И опыт, сын ошибок трудных,
И гений, парадоксов друг...
пробовал отключить. всё равно не помогло.
в чём ещё может быть причина? есть какие-нито варианты?
Вышлите на почту весь модуль с DB таблицей, протестирую на своём локальном сервере.
О сколько нам открытий чудных,
Готовит просвещенья дух,
И опыт, сын ошибок трудных,
И гений, парадоксов друг...
Проверил Ваш модуль, обнаружил следующее:
В конце файла модуля, index.php замените:
switch($op) {
default:
asgard();
break;
case "view":
view();
break;
}
На:
switch($op) {
default:
asgard();
break;
case "view":
view();
break;
case "save_com":
save_com();
break;
}
После чего комментарий будет записан в базу.
Отправка срабатывает, но переход в соответствующий отдел, то есть обратно не происходит. Искать причину не стал в виду отсутствия времени, думаю разберётесь.
Обратите внимание на ещё один нюанс, Ваш код модуля сильно грузит систему:
Генерация: 7.876 сек. и 19 запросов к базе данных за 0.004 сек.
При этом стандартные страницы генерируются на порядок быстрее:
Генерация: 0.055 сек. и 17 запросов к базе данных за 0.005 сек.
Тут проблема не в запросах в базу, с ними на первый взгляд всё в порядке, ищите проблему в коде функции.
О сколько нам открытий чудных,
Готовит просвещенья дух,
И опыт, сын ошибок трудных,
И гений, парадоксов друг...
Всем доброго дня. Глянул тоже мельком. Действительно, видимо причина в коде.