Возможно ли стандартными средствами PHP открыть сессию на чтение, но при этом не автосоздавать её, если её не существует на сервере? Опция read_and_close в функции session_start - не помогает, сессия всё равно пустая создаётся.
Естественно, можно всё это вручную проверять - наличие куки с идентификатором сессии, сам этот идентификатор на валидность, затем в папке хранения сессий проверить наличие соответствующего файла, и только при их наличии вызывать session_start, но при таком подходе проще использовать свой механизм для работы сессии вместо стандартного, чем приделывать к стандартному костыли.
ThunderCat, цель - иметь возможность использовать сессии, но при этом не создавать для каждого гостя пустую сессию, как это делает PHP при открытии сессии через session_start, а создавать только тогда, когда это необходимо (например, при успешной аутентификации вызывать явно создание новой сессии). Вот и спрашиваю, научился ли это делать PHP через стандартный механизм, или придётся в любом случае либо использовать нестандартный, либо терпеть загаженные сессии и городить костыли для обхода GDPR, да и просто чтоб кукисами не гадить всуе)
SagePtr, Весьма странное, я бы сказал болезненно фанатичное желание сэкономить на спичках. Пустая сессия - последнее что должно волновать вас как разработчика. И GDPR в любом случае побоку, так как для авторизации вы их будете использовать же, как минимум глупо искать себе еще одну проблему, вместо того чтобы решить ее нормально.
Механизм сессий работает нормально без ваших костылей, но если у вас свербит в одном месте и хочется "острых ощущений" - флаг в руки, пилите буханку до троллейбуса.
ThunderCat, львиная доля посетителей не регистрируются и не авторизуются, а только читают контент, городить для каждого окно с принятием GDPR я не хочу, это сильно убивает юзабилити. В то время, как присобачить галочку "согласен" под формой для входа и под формой для регистрации - это намного лучше, чем то, что делает сейчас большинство европейских сайтов с корявыми попапами на полэкрана при открытии каждой грёбаной страницы.
В том же nodeJs, в модуле express-session есть опция saveUninitialized, влияющая на это поведение и позволяющая избежать расходов на создание пустых сессий и проблем с GDPR, вот я и спросил, есть ли похожее поведение в PHP из коробки, но если нет его - то придётся свой механизм сессий использовать, это несложно.