Сергей123
Новичок
Как определить факт "стартанутости" сессии ( isset ($_SESSION) не подходит )
Вопрос: если бы я в какой-то строке PHP-кода, про которую известно только то, что она идёт до any output, хотел что-то записать в сессию, избежав notice'а про игнорирование повторного старта сессии, как я должен был бы проверить, стартанула уже сессия или нет?
Сначала ИМХО-резюме: мне кажется, что раз ввели notice об ignore'инге повторных session_start'ов, то должна быть PHP-функция, возвращающая логическое значение "стартанута"/"не стартанута", тем более что в сырцах этот флаг присутствует в явном виде.
isset ($_SESSION) не подходит, так как оно даёт TRUE при
вкл-м регистер глобалс и isset ($_REQUEST['_SESSION']) == TRUE.
'' != session_id() не подходит, так как session_write_close() его не сбрасывает плюс можно без всяких стартов сессии написать session_id('qwerty'); - и он уже не пустой, а сессии нет.
Определять наличие файла сессии тоже не то - это привязка к сессиям на файлах (т.е. не универсально) плюс в любом случае он создаётся при записи в сессию, а не при старте.
Если есть у кого мысли, кроме аля "нафиг страдать фигнёй", - милости прошу, а то пока я остановился на своём ИМХО-резюме (см. выше).
Вопрос: если бы я в какой-то строке PHP-кода, про которую известно только то, что она идёт до any output, хотел что-то записать в сессию, избежав notice'а про игнорирование повторного старта сессии, как я должен был бы проверить, стартанула уже сессия или нет?
Сначала ИМХО-резюме: мне кажется, что раз ввели notice об ignore'инге повторных session_start'ов, то должна быть PHP-функция, возвращающая логическое значение "стартанута"/"не стартанута", тем более что в сырцах этот флаг присутствует в явном виде.
isset ($_SESSION) не подходит, так как оно даёт TRUE при
вкл-м регистер глобалс и isset ($_REQUEST['_SESSION']) == TRUE.
'' != session_id() не подходит, так как session_write_close() его не сбрасывает плюс можно без всяких стартов сессии написать session_id('qwerty'); - и он уже не пустой, а сессии нет.
Определять наличие файла сессии тоже не то - это привязка к сессиям на файлах (т.е. не универсально) плюс в любом случае он создаётся при записи в сессию, а не при старте.
Если есть у кого мысли, кроме аля "нафиг страдать фигнёй", - милости прошу, а то пока я остановился на своём ИМХО-резюме (см. выше).
