Через Edge сессия и куки работают, через Chrome/YandexBrowser - нет

Опишу ситуацию: Захожу из дома на сайт через Chrome - всё отлично, сессии работают, как и всегда. Прихожу на работу, захожу через Chrome, авторизовываюсь, сессия записывается, но при переходе на другую страницу (или обновлении страницы) сессия пропадает. Меняю браузер на Яндекс - то же самое. Я начинаю гуглить, через phpinfo() проверяю папки сохранения сессий, права - всё вроде бы на месте. Разбираю код на запчасти, вардамплю всё - всё работает, но обнуляется (session_start нормально включается на каждой странице, никаких session_destroy нет, время жизни сессии фиксировано нормальное). Error_log абсолютно чист.

Пробую с телефона (Safari) - всё работает... Пробую с компьютера коллеги (а у неё Edge) - работает. Пробую со своего Edge - работает.

Делаю после логина вар_дамп сессий и куки.

var_dump ($_SESSION);
var_dump($_COOKIE);

Через EDGE всё отлично, выводится то что надо.

array(4) { ["auth"]=> bool(true) ["name"]=> string(6) "crash2" ["id"]=> string(1) "8" ["statusName"]=> string(5) "admin" }
array(1) { ["PHPSESSID"]=> string(32) "8287c84fc539e39f58d611db7540d9b5" }

Через Yandex получаю это:

array(0) { }
array(3) { ["_ym_d"]=> string(10) "1654767519" ["_ym_uid"]=> string(18) "165476751977150794" ["MYPROJECT"]=> string(32) "090efd05c6a0cde49f8c3384a87d9f90" }

Куки в настройках браузера включены.. Возможно, наши системные администраторы как-то ограничили.. (???, не буду нести бред, не понимаю). Вопрос: в чём может быть причина и как на ЭТО проверять после логина других пользователей? Вдруг у них такая же фигня будет, будет писать что всё отлично и вы залогинились, а затем - удаление сессии..


Ответы (1 шт):

Автор решения: Виктор Карев
  1. Проверьте, сохраняется ли на компе кука PHPSESSID? куки
  2. Если нет, то что по этому поводу говорит Хром? ошибка
  3. Работает ли авторизация в режиме инкогнито Хрома?

Чтобы такая проблема не возникала, сделайте в .htaccess перенаправление:

  RewriteCond %{SERVER_PORT} 80
  RewriteCond %{SERVER_NAME} ^site\.com$ [NC]
  RewriteRule ^(.*)$ https://site.com/$1 [R=301,L]

Укажите здесь имя своего сайта.

→ Ссылка