• Продлевается ли жизнь сессии при каждом session_start()?

    @DezzmonD
    1) Когда сессия стартует создаётся переменная $_SESSION, и после этого есть шанс что запуститься сборщик мусора который удалит все файлы по пути session.save_path у которых "updated_time" < (cuttent_time - "session.gc_maxlifetime"). ВАЖНО: время жизни куки с ID сессии не обновляется!!!
    Сборщик мусора запускается с шансом "session.gc_probability" / "session.gc_divisor" (по умолчанию это обычно: 1 / 1000 = 0.001%) при каждом запуски сессии;

    2) Да, когда стартует сессия PHP берёт ID с куки, ищет файл сессии в ession.save_path с таким ID, и обновляет его "updated_time".

    Решение твоей проблемы:
    1) Проверь сколько у тебя стоит время жизни куки "session.cookie_lifetime".
    Ты мог обновлять страницу сколько угодно, но попросту прошло время жизни куки. Если это так, то поставь 0 (до закрытия браузера) - это если тебе нужно после каждого запуска сессии время обновлялось. Тогда сессия будет жить session.gc_maxlifetime

    2) Если это не первый вариант то это означает разные скрипты используют 1 папку session.save_path для хранения файлов сессии. Смените папку session.save_path с помощью ini_set() или обратитесь к хостеру.

    P.S. Так же я рекомнедую использовать session_name(). Это поможет избежать ошибок если вы захотите хранить несколько сессий для разных целей.
    Ответ написан
    Комментировать