目前,在我的PHP脚本,一个用户登录后,我存储session_login = 1。但是我有一个问题。我在使用Firefox的习惯,多标签(相信大多数人以及所有今天的网页浏览器应用程序具有多标签功能)。我关闭具有会话的标签,但我没有关闭浏览器。几个小时后,我回来要求我登录在同一页上,但事实并非如此。它不要求我再次登录(我认为这就是所谓的“会议”)。反正是有注销用户,如果他关闭的标签,而不是关闭浏览器??

我有1种溶液,现在,时间空闲踢出。但是,我必须在PHP日期/时间的事情非常有限的知识,所以这将是最后的选择。我想知道,有什么我可以做,用的时间,空闲的旁边?

有帮助吗?

解决方案

PHP有一个简单的方法来设置会话将持续多长时间才超时:

session_set_cookie_params(3600); // make it expire after 1 hour

只需通过它的秒数你希望会话持续(在示例中,1小时=60分钟= 3600秒)。

http://us2.php.net /manual/en/function.session-set-cookie-params.php

其他提示

当在浏览器会话关闭会话cookie只从浏览器清零(即,当在浏览器关闭):因此而得名。如果你想关闭标签后,你可以设置一个很短的到期时间上的Cookie(约5分钟)会议不久清除,并存储在数据库中的相同。然后让网页调用从您的服务器每分钟一个文件的JavaScript函数:这个文件然后选择“刷新”,为接下来的五分钟饼干/数据库条目。如果他们再离开你的网站超过五分钟,然后会话是无效的。

您还可以添加一个Javascript“onunload的”功能检测,如果他们已经关闭了网页或去另一个页面:您可以在此增加一个钩子称之为“destroycookie”功能 - 但是,你必须检查他们已经不只是去网站上的另一页,并实际上并没有从您的网站在两个选项卡打开两个页面。

我相信你正在寻找的选项是会话cookie有效期的设置。我不记得PHP命令,但你应该能够设置cookie窗口关闭时到期。

下面是PHP会话文档: HTTP://us2.php。 nET /手动/ EN / book.session.php

也许你可以使用session_write_close()?

还有一个供session_destroy函数的PHP文件,可能对你有用的注释:的 http://us2.php.net/manual/en/function.session-destroy.php#71889

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top