Итак, начиная с версии 3.4.7 Joomla использует base64 кодированные данные вместо чистого текста для сохранения данных сессии в $_SESSION
.
Было:
function set($key, $value, $namespace)
{
$_SESSION[$namespace][$key] = $value;
}
Стало:
function set($key, $value, $namespace)
{
$this->data->set($namespace . '.' . $key, $value);
$_SESSION['joomla'] = base64_encode(serialize($this->data));
}
Что это значит для ваших расширений:
- если вы используете
JSession
, то всё в порядке – никаких изменений не требуется; - если вы используете
$_SESSION
только внутри своего расширения, то тоже всё в порядке; - если вы используете
$_SESSION
для записи/чтения данных, которые могут прочтены другими расширениями или Joomla, то вероятнее всего ваше расширение перестанет работать корректно. Простой фикс – заменить использование$_SESSION
наJSession
.