PHP会话\销毁、取消设置或清除

PHP会话\销毁、取消设置或清除,php,Php,嗨,我正在尝试清除登录会话,但正确的方法是什么 function logout(){ session_start(); $_SESSION = array(); if (ini_get("session.use_cookies")) { $params = session_get_cookie_params();

嗨,我正在尝试清除登录会话,但正确的方法是什么

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");
    }
您只需打开并找到所有必要的信息,报价:

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

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

例2209。正在使用$\u会话销毁会话

// 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();

您已经粘贴了示例代码。是什么让你认为这是不正确的?有人告诉我,我不应该破坏会话,但我想知道这样做的最佳方式是什么?除非有人提供了具体的论据,或者知道你的应用程序有非常具体和独特的要求(不太可能),否则他们的建议是通用的。所以它是来自PHP.net的一般性建议,而不是来自“某人”的一般性建议。那么对于注销来说,破坏会话完全可以吗?