PHP注销不起作用

时间:2014-01-18 10:51:23

标签: php

我有一个问题,当我退出并按下后退按钮然后刷新时,我再次登录。我需要做些什么来解决这个问题?我想按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>
";
}

1 个答案:

答案 0 :(得分:0)

您可以使用session_destroy();

将用户注销

您无需删除Cookie或其他任何内容。要删除会话数据,只需调用session_destroy。

更重要的是,不要两次致电session_start。这将导致错误。

以下代码是废话。

$_SESSION=array();
setcookie(session_name(), '', time()-42000, '/');
unset($_SESSION);