Итак, начиная с версии 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
.