我继承了一个php知识库cms有一个请求,我延长了会话,所以用户将不必重新登录很长一段时间,让我们说五天。我在登录功能中发现,我可以通过添加以下代码来扩展cookie max / lifetime值。
setcookie(session_name(),$_COOKIE[session_name()],time()+3600*24*5);
我在开发人员工具中检查了cookie,它确实延长了生命周期,但是在几分钟不活动后,用户仍然被重定向到登录状态。还使用Chromephp扩展我发现在刷新登录页面时将会话对象写入控制台日志时会话变量为空。
我在Ubuntu灯服务器上运行我已经检查了php.ini中的一些选项,似乎找不到会延长会话生命周期的选项。另外一个问题是,当多达50个用户可能正在使用此kb时,通过扩展会话可能会遇到服务器内存和性能的风险。一如既往地感谢您的任何建议。
答案 0 :(得分:1)
您为什么要尝试设置与会话名称同名的Cookie?这根本不会有用。典型的Cookie名称为PHPSESSID
。
话虽如此,只是延长cookie过期时间并不会实际延长会话数据在服务器上的时间。
您需要在PHP.ini设置中实际设置会话生存期和会话cookie生存期。请参阅StackOverflow问题的链接,该问题涉及如何执行此操作。