1

我继承了一个 php 知识库 cms,有人要求我延长会话,这样用户就不必在很长一段时间内重新登录,比如说五天。我在登录函数中发现我可以通过添加以下代码来扩展 cookie 最大/生命周期值。

setcookie(session_name(),$_COOKIE[session_name()],time()+3600*24*5);

我在开发人员工具中检查了 cookie,它确实延长了生命周期,但用户在几分钟不活动后仍被重定向到登录。同样使用 Chromephp 扩展,当我在刷新登录页面时将会话对象写入控制台日志时,我发现会话变量为空。

我在 Ubuntu 灯服务器上运行,我检查了 php.ini 中的一些选项,但似乎找不到可以延长会话生命周期的选项。另外一个问题是,当多达 50 个用户可能正在使用此 kb 时,通过扩展会话会遇到服务器内存和性能方面的风险。一如既往地提前感谢任何建议是受欢迎的。

4

1 回答 1

1

为什么要设置与会话名称同名的 cookie?那根本没有用。典型的 cookie 名称是PHPSESSID.

话虽如此,只是延长 cookie 的过期时间并不会真正延长会话数据在服务器上的生存时间。

您需要在 PHP.ini 设置中实际设置会话生命周期和会话 cookie 生命周期。请参阅包含如何执行此操作的 StackOverflow 问题的链接。

如何在 30 分钟后使 PHP 会话过期?

于 2013-03-28T18:21:15.960 回答