PHP会话字符串限制

时间:2011-01-22 13:20:19

标签: php session

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

由于

2 个答案:

答案 0 :(得分:7)

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

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

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

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

答案 1 :(得分:2)

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

看到会话数据是在每个请求中导入的,但是,允许脚本占用的最大内存量会产生有效限制。明智的是不要在那里存储超过几千字节。

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