如何使用php.ini静默禁用PHP会话?

时间:2014-02-13 03:31:25

标签: php session

我想完全禁用PHP会话,但要透明地编写代码。

也就是说,使session_start()成功返回,$_SESSION存在,并在单个请求中工作,即单个请求可以从该全局读取/写入,但随后数据在请求结束时丢弃,没有传递会话变量或cookie,PHP不会尝试将其存储在磁盘或其他任何地方等等。

我在一个地方读到使用gc_lifetime为0的文件会话处理程序,但在其他地方说这不起作用。我想知道是否有一个无操作的“处理程序”或类似的东西,这是最好/正确的方法。

我更喜欢只使用php.ini的解决方案,但如果这是唯一的方法,那么PHP内的解决方案是可以接受的吗?

2 个答案:

答案 0 :(得分:0)

如何在php.ini文件中使用auto_append_file指令:

http://php.net/manual/en/ini.core.php#ini.auto-append-file

然后在追加文件中添加kill code session_destroy()\ unset

答案 1 :(得分:0)

PHP允许您插入负责存储和加载会话的SessionHandler。您可以通过使所有会话处理程序函数NOP来禁用会话保留。用户仍将收到会话cookie(因为PHP不知道任何不同),但这可能是可以接受的,具体取决于您的用例。

在运行任何使用会话的代码之前,使用auto_prepend_file设置会话处理。