有人能帮我处理会话过期的问题吗?我只是想在我注销页面时终止会话,以及当我无意中按下后退按钮或意外关闭标签时如何保留会话。
你能给我一些可能有助于解决我问题的代码吗?谢谢
情况是这样的。。我有一个注册页面,索引页面,主页,数据库结果列表页面。。
在我的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
}