Joomla login fixКойто работи с Joomla и я е обновил до последната версия 3.6.1 или я е инсталирал на чисто, сигурно е видял съобщението:

Failed to start the session: already started by PHP ($_SESSION is set).

Информацията за тази грешка и предложение за справяне с нея е оскъдна, така че се наложи да поровя и прочета малко повече. Ето и какво научих…

Това съобщение се явява в комбинация със стара PHP версия на сървъра. Примерно PHP 5.3 и по-стари ще ви извадят тази грешка задължително, когато се опитате да влезете в административната част или в сайта като потребител.

За щастие има бърз и лесен начин как да се оттървете от грешката и отново да можете да се вписвате в Joomla нормално. Всичко касае един единствен файл – native.php от библиотеките на Joomla. Това е така, тъй като този файл вече е писан за по-нова версия на PHP. Затова вариантите за изчистване на грешката са два.

  1. Сменете версията на PHP на сървъра с по-нова, примерно PHP 5.5 и това би трябвало да разреши проблема. Ако не можете да направите това или друга част на сървъра изисква по-ниска версия на PHP, със сигурност вариант 2 ще реши проблема.
  2. Отворете libraries/joomla/session/handler/native.php и направете следните редакции:
    1. Ред 25: private $started; променете го на private $started = false;
    2. Ред 33: private $closed; променете го на private $closed = false;
    3. Ред 153: session_write_close(); добавете след него нов ред със запис $this->closed = true;

Със сигурност една от двете корекции ще ви свърши работа и ще ви оттърве от досадната грешка. Дори да има леко разминаване в номерата на редовете, търсете записите, които съм споменал и ще се справите.

Ще се радвам на отзивите ви в коментарите по-долу.