PHP会话字符串限制

san*_*nta 4 php session

对于可以使用PHP放入$ _SESSION的字符串是否有长度限制?

谢谢

Pau*_*xon 7

字符串的大小受服务器上可用内存量的限制.该字符串是否可以成功存储在会话中取决于所使用的会话存储机制.

如果您使用的是开箱即​​用的基于文件的会话存储,那么您可能会编写一个大于可用内存量的文件.但是,如果您使用的是memcache,那么您可能会受到更多限制.

但是,实际上,如果你在会话中存储了这么多,你就会问这个问题,你可能会滥用会话!

会话应该只包含您真正希望几乎每个应用程序处理的PHP请求都可用的内容 - 典型示例是用户名,用户ID或权限级别.当您的应用偶尔需要更大的东西时,它可以从另一个存储系统中获取它.


Pek*_*ica 2

这取决于所session_save_handler使用的。对于默认的,理论上没有限制(或者非常非常高,由文件系统决定),因为会话数据保存在文件中。

然而,由于会话数据是在每个请求上导入的,因此脚本允许占用的最大内存量存在有效限制。明智的做法是不要在其中存储超过几千字节的数据。

如果您需要保存大量数据,请将其存储在临时文件(以当前会话命名)中。