我有一个问题,当我退出并按下后退按钮然后刷新时,我再次登录。我需要做些什么来解决这个问题?我想按logout时删除所有数据。按下注销后,会话仍然存在。有什么问题?
session_start();
require ("connection.php");
if (isset($_GET['logout'])){
session_start();
$_SESSION=array();
setcookie(session_name(), '', time()-42000, '/');
unset($_SESSION);
session_destroy();
header ("Location:index.php");
}
if(isset($_POST['login'])){
$name=strip_tags(mysql_real_escape_string($_POST['name']));
$password=strip_tags(mysql_real_escape_string($_POST['password']));
if (!$name || !$password) {
echo "Fields are empty!<br />
<a href='index.php'>Click here to return.</a>";
}
else {
$query="SELECT * ";
$query.="FROM users ";
$query.="WHERE user_name='$name' ";
$query.="AND password='$password'";
$rs = mysql_query($query, $dbc);
if(mysql_num_rows($rs)==1) {
$row=mysql_fetch_array($rs);
$user_name=$row['name'];
$_SESSION['user']=$user_name;
echo "Hello". " ". $_SESSION['user'];
echo "<a href='index.php?logout'>Logout</a>";
} else {
echo "User doesn't exist." ;
}
}
}
else {
echo"
<form method='POST' action='index.php'>
User name: <input type='text' name='name'><br />
Password:<input type='password' name='password'><br />
<input type='submit' name='login' value='login'>
</form>
";
}
答案 0 :(得分:0)
您可以使用session_destroy();
您无需删除Cookie或其他任何内容。要删除会话数据,只需调用session_destroy。
更重要的是,不要两次致电session_start
。这将导致错误。
以下代码是废话。
$_SESSION=array();
setcookie(session_name(), '', time()-42000, '/');
unset($_SESSION);