【发布时间】:2016-06-27 16:07:27
【问题描述】:
我正在尝试实施一个系统来让用户在一段时间内保持登录状态。我可以通过使用 cookie 并将其存储到数据库中然后识别他来做到这一点。
但最近我听说即使用户关闭浏览器并打开一个新窗口,会话也可以处于活动状态。我的意思是再次关闭/打开浏览器后会话是否仍然可用(甚至多次)?
我可以在以下脚本中使用$_SESSION["LoginValidation"] 多少时间(最多)?
<?php
session_start();
$_SESSION["LoginValidation"] = ture;
目前该会话将在关闭浏览器之前可用。
【问题讨论】:
-
没办法回答。会话生命周期可根据 php 进行配置。默认设置为仅用于浏览器会话,但您可以设置任何您想要的到期时间。但是即使会话文件仍然存在于您的服务器上,客户端浏览器中的会话 COOKIE 也可能会提前消失。例如您将拥有一个孤立的会话文件。
-
@MarcB “但是你可以设置任何你想要的过期时间” ..!因此,即使用户关闭浏览器,我也可以在服务器上保持会话处于活动状态。对吗?
-
是的。 cookie 可以在与会话文件本身不同的时间到期。有两个有效期。 'client-side delete'(擦除cookie,会丢失sessioN),或者server-side delete(删除会话文件-客户端仍然有cookie,但现在引用一个不存在的会话文件)