2011-05-31 127 views
1

我知道会话是服务器端,所以即使浏览器关闭,也可以保存会话吗?临时存储会话

例如保存会话一天。

请不要提示“cookies”,在这种情况下必须执行会话。

感谢

+5

会话通常使用饼干,所以你的问题是自动关于饼干 – 2011-05-31 15:04:57

+0

好吧,我知道,但你明白我在说什么:) – user773961 2011-05-31 15:05:38

+0

序列化会话并将其保存在一个文件 – 2011-05-31 15:05:48

回答

1
php_value session.gc_maxlifetime 86400 

您可以设置上述在.htaccess或在php.ini

修改的session.gc_maxlifetime

这定义了在垃圾收集之前PHP会为服务器上的用户创建一个会话文件多长时间(上例将允许服务器维护会话持续1天),但会话通常依赖会话ID cookie,因此如果浏览器被重置或清除cookie,用户将不会重新连接到他们的Web会话(您实际上正在设置要使用的会话ID cookie会话在大多数情况下,即使你没有意识到。)

1

你可以创建一个数据库,并在那里存储会话,并在客户端存储$ _SESSION ['id']这是会话的ID在数据库。但是,如果您必须在会话中存储越来越多的变量,这将成为头痛的问题。

1

就像Gumbo说的那样,把它传递给URL。但我想如何解决这个问题,并不是通过Url传递SESSION_ID,而是将其作为散列或编码数据。

然后每当此用户来到您的页面。如果这个散列/编码数据仍然在有效时间范围内,并且这个“匿名”用户对这个区域有权限,你可以检查你的标题。

下行:如果该用户绕过这个环节,任何人都可以访问数据

优点:非常便携,且易于实现


商店SESSION_ID在数据库绑定到用户IP。每当这个用户在登录后,通过与session_id

下行设置SESSION_ID启动会话:很多工作,如果ISP改变他们的用户生成的IP规则,这将不起作用

优点:即使他擦除SESSION_ID的cookie,你将能够继续会话

+0

此外,我正在考虑您正在设置会话最大生命周期(如其他用户所建议的)。由于这只是对技术的“良好使用”,以及有效的域名等 – Dudemullet 2011-05-31 15:50:07

0

有很多方法可以做到这一点,但beign工匠你可以:

做出的脚本保存EA为用户在文件中,CH会议

OR

去php.ini并改变会话寿命

OR

使用session_set_save_handler功能的详细信息here