Журнал Начинающего Программиста 29, 2010-11-08 15:40
Здравствуйте,
Ошибка форума
phpBB
Critical error. Error creating new
session
Данная неработоспособность связана с «дыркой» в самом форуме phpbb.
Cостоит она в том, что форум хранит в БД все сессии, не удаляя их, или
удаляя с такой периодичностью, что, в конце концов, таблица сессий
переполняется и форум выдаёт ошибку «phpBB:
Critical error. Error creating new
session», т.к. не может работать дальше с таким количеством
сессий.
замените эту строку message_die(CRITICAL_ERROR,'Error
creating new session', '', __LINE__, __FILE__, $sql);
на следующие: $error = TRUE; if (SQL_LAYER == "mysql" ||
SQL_LAYER == "mysql4") { $sql_error =
$db->sql_error($result); if ($sql_error["code"] ==
1114) { $result =
$db->sql_query('SHOW TABLE STATUS LIKE
"'.SESSIONS_TABLE.'"'); $row =
$db->sql_fetchrow($result); if
($row["Type"] == "HEAP") { if
($row["Rows"] > 2500) {
$delete_order = (SQL_LAYER=="mysql4") ?
" ORDER BY session_time
ASC" : "";
$db->sql_query("DELETE QUICK FROM
".
SESSIONS_TABLE."$delete_order LIMIT 50"); } else {
$db->sql_query("ALTER TABLE ".SESSIONS_TABLE."
MAX_ROWS=".($row["Rows"]+50)); } if
($db->sql_query($sql)) {
$error = FALSE; } } } } if ($error) { message_die(CRITICAL_ERROR,
"Error creating new session", "", __LINE__, __FILE__, $sql); }
сохраните файл и скопируйте на сервер, записав поверх существующего.
Теперь вы можете не волноваться за переполнение таблицы сессий в базе
данных форума phpBB.
Проблемы работы функций strtoupper()
и strtolower()
с кириллицей
Проблемы при работе с кириллицей в PHP-скриптах функций strtoupper() и
strtolower()
возникают, когда неправильно определена текущая локаль (locale). Для
правильного её определения следует воспользоваться функцией setlocale() в
самом начале вашего PHP-сценария: <?php