Ну для начала о сессиях.
Примерно через час или больше на форуме возникает такая ошибка:
phpBB : Critical Error
Error creating new session
DEBUG MODE
INSERT INTO phpbb_sessions (session_id, session_user_id, session_start, session_time, session_ip, session_page, session_logged_in) VALUES ('485f5149e13b64244ee9ed865b234375', -1, 1183285045, 1183285045, '53ac1714', 0, 0)
Line : 213
File : /home/webadmin/hpforum.ru/html/includes/sessions.php
После очищения сессий вручную из БД, все начинает работать, но потом все повторяется заного....
Такая фигня началась после использования мода db_mtnc_mod_1_3_8. Я уже совсем не знаю что делать с этим...
==============================================================================================
Второй случай более интересный. До сих пор никто в интернете не смог найти решения к устранению данной ошибки.
Примерно с лета-осени 2005 появилась такая ошибка - в форум нельзя отправлять посты, содержащие одинарные кавычки. Т.е. сообщение типа: 'raz raz два два'
При отправке запроса сервер их почему-то воспринимает как одинарные кавычки из самого языка SQL . Выводится ошибка, и пост в результате не отправляется.
Как результат, общая информация о самом посте записывается, а сам текст поста - уже нет.
В результате:
- сообщения, содержащие одинарные кавычки, просто не отправляются
- форум считает, что в этой теме содержится больше сообщений, чем там есть на самом деле.
- из-за этого в темах, куда часто пробовали отправлять одинарные кавычки, последняя страница часто не открывается, нужно перелистывать на одну страницу назад.
Из-за одинарной кавычки также не работает:
- чтение приватов, содержащих одинарную кавычку (отправлять можно, но их не смогут прочесть)
- редактирование профиля, если там будет одинарная кавычка
- редактирование и удаление отдельных сообщений пользователей, в нике которых есть одинарная кавычка
Давно мечтала об этом рассказать.
Спасибо, если дочитали))))
P.S. (необязательный )
Мы разбирали эту ситуацию вместе с модератором Vesper, вот что у нас получалось:
----------------------------------------------------------
в файле functions_post.php из стандартного варианта движка
----------------------------------------------------------
Получается, отправка сообщения работает так:
- установка каких-то настроек
- флуд-контроль (проверка времени между постами)
- отправка общей информации о сообщении:
INSERT INTO " . POSTS_TABLE . " (topic_id, forum_id, poster_id, post_username, post_time, poster_ip, enable_bbcode, enable_html, enable_smilies, enable_sig) VALUES ($topic_id, $forum_id, " . $userdata['user_id'] . ", '$post_username', $current_time, '$user_ip', $bbcode_on, $html_on, $smilies_on, $attach_sig)
В этой таблице POSTS_TABLE хранится всё что угодно, кроме текста самого сообщения))
Смотрим, что здесь информация о сообщении привязывается к номеру темы.
- $post_id = $db->sql_nextid(); - это новый сгенеренный номер поста из счетчика
- обновляем таблицу с текстами постов темы:
"INSERT INTO " . POSTS_TEXT_TABLE . " (post_id, post_subject, bbcode_uid, post_text) VALUES ($post_id, '$post_subject', '$bbcode_uid', '$post_message')" : "UPDATE " . POSTS_TEXT_TABLE . " SET post_text = '$post_message', bbcode_uid = '$bbcode_uid', post_subject = '$post_subject' WHERE post_id = $post_id";
-- похоже, на этом месте и вылетает ошибка с одинарными кавычками. Текст сообщения не добавляется, а общая информация о нём уже записана.
То есть к этой теме уже привязано сообщение-призрак, для которого есть общая информация, но нет самого текста.
И в списке тем, число сообщений для этой темы будет отображаться уже на единицу больше. Чем больше в тему отправляют фантомных постов с одинарными C
===============================================
И еще одна проблема. Когда в теме пишешь сообщения, например на одной странице 20 сообщений., при 21 появляется новая страница, НО у нас пишешь 20 пост и появляется новая страница, при клике на новую страницу пишется сообщение "В этой теме нет сообщений".
Вот пример ошибки:
Цитата:"
Error in posting
DEBUG MODE
SQL Error : 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'sdsadsd\\' dsasaaaaaa')' at line 1
INSERT INTO phpbb_posts_text (post_id, post_subject, bbcode_uid, post_text) VALUES (815137, 'ывавыа', 'd16dbd5f1f', 'бра бра рба \\'sdsadsd\\' dsasaaaaaa')
Line : 282
File : /home/webadmin/youweb.ru/html/includes/functions_post.php "
Что делать?
Сессии и Одинарная кавычка( ОЧЕНЬ интересный случай)
-
- phpBB 1.0.0
- Сообщения: 1
- Стаж: 17 лет 10 месяцев
-
- phpBB Guru
- Сообщения: 5484
- Стаж: 21 год 1 месяц
- Поблагодарили: 2 раза