一次删除/定时/销毁多个php会话变量

时间:2015-10-12 22:53:56

标签: php session if-statement session-variables session-timeout

我正在尝试将几个会话变量在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();

这些对于单个变量都可以正常工作,但是我试图在同一时间将这个变为多个变量,例如:

  1. Fullname
  2. Phonenumber来
  3. EMAILADDRESS
  4. 依此类推......

    有人可以善意地告诉我最好的解决方法,以便销毁多个变量,而不必为每个变量反复复制我的代码。

1 个答案:

答案 0 :(得分:2)

NewLeaner从你上一个问题中我知道我为你回答,我仍然在学习基础知识,所以我远没有经验,但是我在编写自己的应用程序时遇到了这样的问题as Darren mentioned in a previous comment ,在数组中包含变量值列表将允许您根据与会话变量值匹配的数组值相应地取消设置相关会话。

以下是会话变量值的示例:

  1. 全名会话:$_SESSION['fullname']
  2. Phonenumber Session:$_SESSION['Phonenumber']
  3. Emailaddress Session:$_SESSION['Emailaddress']
  4. $unset = array('Fullname','Phonenumber','Emailaddress'); 
    foreach( $unset as $sessions ) {
        unset($_SESSION[$sessions]); 
    }
    

    这将取消设置并删除上述会话,例如Fullname,Phonenumber,Emailaddress以及您希望添加到阵列中的任何其他会话。

    您可以使用单引号和逗号分隔向数组添加更多值。以下是添加更多值的示例。

    $unset = array('Fullname','Phonenumber','Emailaddress', 'Variable_4', 'Variable_5', 'Variable_6', 'Variable_7', 'And so on...');
    

    希望这有助于再一次!