Код
phpBB : Critical Error
Error creating new session
DEBUG MODE
INSERT INTO phpbb_1sessions (session_id, session_user_id, session_start, session_time, session_ip, session_page, session_logged_in, session_admin) VALUES ('26ff17302df2308b169a8cf28527870d', -1, 1177892514, 1177892514, '558cca3c', 0, 0, 0)
Line : 220
File : sessions.php
Error creating new session
DEBUG MODE
INSERT INTO phpbb_1sessions (session_id, session_user_id, session_start, session_time, session_ip, session_page, session_logged_in, session_admin) VALUES ('26ff17302df2308b169a8cf28527870d', -1, 1177892514, 1177892514, '558cca3c', 0, 0, 0)
Line : 220
File : sessions.php
Ладно. Бог с ним. Выход, слава Богу, нашелся.
(взято с форума хостера в ФАКе)
Цитата
Ошибка форума phpBB: Critical error. Error creating new session
Данная неработоспособность связана с "дыркой" в самом форуме phpbb.
Cостоит она в том, что форум хранит в БД все сессии, не удаляя их, или удаляя с такой периодичностью, что, в конце концов, таблица сессий переполняется и форум выдаёт ошибку "phpBB: Critical error. Error creating new session", т.к. не может работать дальше с таким количеством сессий.
Чтобы устранить ошибку выполните следующее:
1. откройте корневую директорию форума
2. откройте файл includes/sessions.php
3. найдите строку 152
4. замените эту строку
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);
}
5. сохраните файл и скопируйте на сервер, записав поверх существующего.
Теперь вы можете не волноваться за переполнение таблицы сессий в базе данных форума phpBB.
Данная неработоспособность связана с "дыркой" в самом форуме phpbb.
Cостоит она в том, что форум хранит в БД все сессии, не удаляя их, или удаляя с такой периодичностью, что, в конце концов, таблица сессий переполняется и форум выдаёт ошибку "phpBB: Critical error. Error creating new session", т.к. не может работать дальше с таким количеством сессий.
Чтобы устранить ошибку выполните следующее:
1. откройте корневую директорию форума
2. откройте файл includes/sessions.php
3. найдите строку 152
4. замените эту строку
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);
}
5. сохраните файл и скопируйте на сервер, записав поверх существующего.
Теперь вы можете не волноваться за переполнение таблицы сессий в базе данных форума phpBB.
Ладно. Открыл блокнотом (где все строчки съехали и ясен пень править что-либо крайне трудно) этот самый файлик php (18 Кб), заменил, как сказано выше, но толку чуть. Если кому не трудно, гляньте файлик с моими исправлениями, может там строчка съехала или еще что? Помогите, пожалуйста, ребят!!!
