有人可以帮我解决会话过期问题吗?我只是想在我退出到我的页面时使会话失效,以及当我意外地按下后退按钮或者我不小心关闭我的标签时如何保留会话..
你能给我一些可能有助于解决我的问题的代码吗?感谢。
以下是这种情况..我有一个注册页面,索引页面,主页面,数据库页面的结果列表..
在我的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 ..
这里有什么好处,当我不小心按下后退按钮并意外关闭标签时,我仍然可以访问我的帐户..但是当我退出它时...会话将过期..这有点我预期。但它会导致我的注册页面出现问题。我无法访问新创建的帐户。帮助。
答案 0 :(得分:0)
按后退按钮意味着:
检查会话是否表示
例如:
<?php
session_start()
if($_SESSION['sesion_varaiable']{
//page to be displayed
}else{
//redirect to login page
}
在logout.php文件中
取消会议
<?php
session_destroy();
?>
或
<?php
unset($_SESSION);
?>
答案 1 :(得分:0)
要注销,你可以试试这个:
//sample if condition
if($_REQUEST['mode'] == 'logout'){
session_unset();
session_destroy();
header('Location:'.path_to_login_page); //redirect to ur login page
}