PHP如何在注销页面时使会话过期,以及如何在按下后退按钮时保留会话


PHP How to expire the session when you log-out to your page and how to retain the session when press back button

有人能帮我处理会话过期的问题吗?我只是想在我注销页面时终止会话,以及当我无意中按下后退按钮或意外关闭标签时如何保留会话。

你能给我一些可能有助于解决我问题的代码吗?谢谢

情况是这样的。。我有一个注册页面,索引页面,主页,数据库结果列表页面。。

在我的index.page上,我有一个代码:

//Start session
session_start();    
//Unset the variables stored in session
unset($_SESSION['SESS_EMP_ID']);

在我的主页上,我有一个:

session_start();
if(!isset($_SESSION['SESS_EMP_ID']) || empty($_SESSION['SESS_EMP_ID'])) {
    header("Location: ".dirname($_SERVER['PHP_SELF'])."/index.php");
    die;
}

在我的结果列表页面上,我还有一个

session_start();
if(!isset($_SESSION['SESS_EMP_ID']) || empty($_SESSION['SESS_EMP_ID'])) {
    header("Location: ".dirname($_SERVER['PHP_SELF'])."/index.php");
    die;
}

问题是,当我注册到我的注册页面,并试图访问我创建的新帐户时,无论何时我都会将其提交到主页。我无法进入页面,它总是返回index.php.

这里的好处是,当我不小心按下后退按钮并不小心关闭选项卡时,我仍然可以访问我的帐户。。但当我注销时…会话将过期。。这有点出乎我的意料。。但它给我的注册页面带来了问题。我无法访问新建的帐户。。帮助

按下后退按钮表示:

检查会话过期与否

例如:

<?php
session_start()
if($_SESSION['sesion_varaiable']{
   //page to be displayed
}else{
  //redirect to login page
}

在logout.php文件中

取消设置会话

  <?php
    session_destroy();
    ?>

 <?php
unset($_SESSION);
?>

对于注销,您可以尝试以下操作:

//sample if condition
if($_REQUEST['mode'] == 'logout'){
    session_unset();
    session_destroy();
    header('Location:'.path_to_login_page); //redirect to ur login page
}