Ограничение строки PHP-сессии - PullRequest
4 голосов
/ 22 января 2011

Есть ли ограничение длины строки, которую можно поместить в $ _SESSION с помощью PHP?

Спасибо

Ответы [ 2 ]

7 голосов
/ 22 января 2011

Размер строки ограничен объемом памяти, доступной на сервере. Может ли эта строка быть успешно сохранена в сеансе, будет зависеть от используемого механизма хранения сеанса.

Если вы используете готовое файловое хранилище сеансов, то, скорее всего, вы можете написать файл, размер которого превышает объем доступной памяти. Однако, если вы используете, скажем, memcache, вы можете быть более ограничены.

Однако, практически говоря, если вы храните так много в сеансе, вы задали этот вопрос, вы, вероятно, злоупотребляете сеансами!

Сеансы должны содержать только то, что вы действительно хотите иметь доступным практически для каждого запроса PHP, который обрабатывает ваше приложение - типичными примерами могут быть имя пользователя, идентификатор пользователя или уровень привилегий. Когда вашему приложению иногда требуется что-то большее, оно может пойти и взять его из другой системы хранения.

2 голосов
/ 22 января 2011

Зависит от используемого session_save_handler. Для значения по умолчанию теоретически нет ограничений (или очень, очень высоких, диктуемых файловой системой), поскольку данные сеанса сохраняются в файлах.

Принимая во внимание, что данные сеанса импортируются при каждом запросе, однако существует эффективный предел, налагаемый максимальным объемом памяти, который скрипту разрешено занимать. Целесообразно не хранить там более нескольких килобайт.

Если вам нужно сохранить большие порции данных, храните их во временных файлах (названных в честь текущего сеанса).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...