Ошибка форума 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.

  • 6 Пользователи нашли это полезным
Помог ли вам данный ответ?

Связанные статьи

Что такое PHP и как начать с ним работать

PHP: Hypertext Preprocessor — очень простой даже для начинающего веб-программиста...

Расширения файлов для PHP-скриптов, как добавить свое расширение

Интерпретатором PHP автоматически обрабатываются как PHP-сценарии файлы...

Авторизованная отправка писем с серверов виртуального UNIX-хостинга

В целях безопасности, на всех серверах виртуального UNIX-хостинга заблокированы исходящие...

Отправка писем при помощи функции mail()

В следующим примере мы воспользуемся встроенной функцией mail(), где в качестве параметров,...

Проблемы работы функций strtoupper() и strtolower() с кириллицей

Проблемы при работе с кириллицей в PHP-скриптах функций strtoupper()...