临时存储会话

问题描述

| 我知道会话是服务器端的,所以即使关闭浏览器也可以保存会话? 例如,将会话保存一天。 请不要建议\“ cookies \”,在这种情况下必须执行会话。 谢谢     

解决方法

        它们已经保存(有关会话路径,请参见php.ini文件)。实际上,真正的问题在于垃圾收集它们。 如果要存储更长的时间,请编辑php.ini文件,或定义一个自定义会话处理程序: http://www.php.net/manual/zh/function.session-set-save-handler.php     ,        session_set_cookie_params我认为这是您想要的。如果将会话存储在cookie中,则可以设置该cookie的生存期。因此,用户可以在该时间范围内随时返回,仍然可以进行原始会话。 边注 阅读此书以获取有关会话生存期等的更多信息。 30分钟后如何终止PHP会话?     ,        
php_value session.gc_maxlifetime 86400
您可以在.htaccess中设置以上内容,也可以在php.ini中修改session.gc_maxlifetime 这定义了在垃圾回收之前,PHP将在服务器上为用户提供会话文件的时间(以上示例将允许服务器将会话维护1天),但是会话通常确实依赖会话ID cookie,因此如果浏览器重置或清除用户不会重新连接到其Web会话的cookie(实际上,您设置会话ID cookie是在大多数情况下使用会话,即使您没有意识到)。     ,        您可以创建一个数据库并在其中存储会话,而在客户端,只需将$ _SESSION [\'id \']存储在数据库中即可。但是,当您必须在会话中存储越来越多的变量时,这将变得令人头疼。     ,        就像Gumbo所说的那样,在URL中传递它。但是我想解决这个问题的方法是,不要将SESSION_ID通过Url传递,而只需将其设置为哈希或编码数据即可。 然后,只要该用户来到您的页面。您可以在标题中检入此哈希/编码数据是否仍在有效时间范围内,以及该“匿名”用户是否拥有访问隔离区的权限。 缺点:如果此用户绕过此链接,则任何人都可以访问数据 附带:极为便携,易于实施 将SESSION_ID存储在绑定到用户IP的数据库中。每当此用户重新登录时,通过将SESSION_ID设置为session_id来启动会话 缺点:还有很多工作,如果用户ISP定期更改其生成的IP,则将无法工作 旁白:即使他清除了SESSION_ID Cookie,您也可以继续进行会话     ,        有很多方法可以做到这一点,但您可以成为一名工匠: 创建一个脚本,将用户的每个会话保存在一个文件中 要么 转到PHP.ini并更改会话生存时间 要么 在此处使用
session_set_save_handler
函数更多信息