PHP Session_销毁或取消设置或清除

时间:2011-09-10 11:08:32

标签: php

您好我正在尝试清除登录会话但是有什么正确的方法吗?

function logout(){

                    session_start();
                    $_SESSION = array();

                    if (ini_get("session.use_cookies")) {
                    $params = session_get_cookie_params();
                    setcookie(session_name(), '', time() - 42000,
                    $params["path"], $params["domain"],
                    $params["secure"], $params["httponly"]);
                    }
                        session_destroy();
                        header ("Location: index.php");
    }

1 个答案:

答案 0 :(得分:0)

您只需打开manual page for session_destroy并找到所有必要的信息,引用:

  

session_destroy()会销毁与当前会话关联的所有数据。它不会取消设置与会话关联的任何全局变量,也不会取消设置会话cookie。

     

为了完全终止会话,要将用户注销,还必须取消设置会话ID。如果使用cookie来传播会话ID(默认行为),则必须删除会话cookie。 setcookie()可能会用于此。

示例2209.使用$ _SESSION

销毁会话
// Initialize the session.
// If you are using session_name("something"), don't forget it now!
session_start();

// Unset all of the session variables.
$_SESSION = array();

// If it's desired to kill the session, also delete the session cookie.
// Note: This will destroy the session, and not just the session data!
if (isset($_COOKIE[session_name()])) {
    setcookie(session_name(), '', time()-42000, '/');
}

// Finally, destroy the session.
session_destroy();