@Aricus

Почему сбрасывается session_id в сайте на wordpress?

Есть сайт на wordpress (не знаю, имеет ли это значение). Раньше всё было в порядке, но вдруг стали барахлить сессии: данные между страницами не сохранялись. Исследование показало, что сбрасывается session_id (каждый раз новый при обновлении страницы):
var_dump(session_id());
при этом файлы сессий тоже каждый раз создаются новые, а старые не удаляются.
Причём этот баг нестабильный: может исчезать и появляться при изменении кусков кода, не связанных с сессиями напрямую. Например, одно время работало добавление вот этого куска кода в functions.php, и я без понятия, почему (Точно помогало: проверял на разных браузерах. Если убрать этот кусок и открыть на новом браузере или компьютере, баг возвращался. Если снова добавить, начинало работать. Снова убрать и открыть на уже использованном браузере - работать не прекращало):
if (!isset($_SESSION["test2"])) {
	echo '<script></script>';
    $_SESSION["test2"] = 1;
}

Сессии инициируются сверху functions.php так (домен за***):
ini_set('session.cookie_domain', '***.***.ru');
ini_set('session.use_trans_sid', 1);
session_set_cookie_params(36000, "/", "***.***.ru", false, false);
session_start();

Первые две строчки помогали людям с такой же проблемой. Мне не помогли.
Также стоит отметить:
  • Ошибка происходит во всех основных браузерах, в самых обычных условиях обновления страницы. Никаких ajax, редиректов, выключенных куки в браузере.
  • session_destroy в теме сайта нигде нет. Не могу поручиться за ядро wordpress.
  • favicon.ico (говорят, её отсутствие может привести к этой ошибке) на сайте формируется wordpress (в настройках внешнего вида загрузкой большого png изображения).
  • Вопрос задан
  • 92 просмотра
Пригласить эксперта
Ответы на вопрос 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
Недавно на реддите был большой хай на эту тему.
Из него я узнал, что

1. есть как минимум 1 спец вордпресс хостинг, который убивает РНР сессии
2. вордпресс не использует РНР сессии в вам не советует
3. если на твоем вордпресс сайте используются сессии - это значит используется плагин из говнокода
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы