【发布时间】:2018-06-28 19:57:46
【问题描述】:
我试图让几个会话变量在 30 分钟后超时/销毁,但使用尽可能少但有效的代码。
目前我有两种解决方案:
if(isset($_SESSION['fullname']) && (time() - $_SESSION['fullname'] > 1800)) {
session_unset();
session_destroy();
}
$_SESSION['fullname'] = time();
session_start();
$user_inactive = 1800;
$user_session = time() - $_SESSION['current_user'];
if($user_session > $user_inactive) {
session_destroy();
header("location: logout.php");
}
$_SESSION['current_user']=time();
这两种方法都适用于单个变量,但是我试图让它同时破坏多个变量,例如:
- 全名
- 电话号码
- 电子邮件地址
等等……
谁能给我建议最好的方法来解决这个问题,以便销毁多个变量,而不必为每个变量一遍又一遍地复制我的代码。
【问题讨论】:
-
session_destroy()将结束您的会话,删除所有会话。 -
最好让整个会话超时而不是清除单个变量。部分清除会话将是一场噩梦。
-
我确实想过只使用 session_destroy() ,但这样做的含义是我需要执行的其他一些会话将变得无效。我只是在我说话的时候处理代码,有人怀疑可能使用 cookie 来承载我需要的其他值,我还没有完全解决这个问题,所以非常感谢任何想法或想法。谢谢大家。
-
$delete = array('Fullname','Phonenumber','Emailaddress'); foreach($delete as $option) { unset($_SESSION[$option]); }。其中数组项是 SESSION 键。
标签: php session if-statement session-variables session-timeout