无法退出

时间:2012-10-31 15:44:12

标签: php session logout logoff

我在一个注销功能不起作用的工具上工作。我有一个索引页面,其中包含配置文件和session_start()。

之后,我会在其中包含一个页面,其中包含我的横幅以及我的登录和注销按钮。当我点击其中一个按钮时,我会转到另一个页面connec.php,我会销毁或创建连接。

连接没问题,我初始化了所有的会话变量。 为了断开连接,我做了:

if(isset($_POST['logout'])){
    $_SESSION = array ();
    session_unset();
    session_destroy();
    $_POST['logout']=1; 
    //gotopage($GLOBALS["GLOBAL_URL_PSISITE"]);
    header("Location: ../index.php"); 

我仍然保持联系,当我print_r($_SESSION)永远存在时。

3 个答案:

答案 0 :(得分:2)

首先确保页面在页面顶部定义session_start(),然后在页面上执行任何操作,然后确保输入字段包含form元素和{{{} 1}}有submit button,您的表单设置为name=logout

method=post

答案 1 :(得分:0)

你的文件中需要这样的东西

<?php
session_start();

if (isset($_POST['logout'])) {

    $_SESSION = array();

    if (ini_get("session.use_cookies")) {
        setcookie(session_name(), '', time() - 42000, '/');
    }

    session_destroy();

    //$_POST['logout']=1;  // this won't do anything since you're redirecting on the next line.

    header("Location: ../index.php");
    exit;

}
?>

答案 2 :(得分:0)

为了正确“销毁”正在运行的会话,您必须首先告诉PHP您要杀死哪个会话。

如果您的会话没有自定义/手动名称(大多数情况下),您必须先打电话

session_start();

之前你可以打电话

session_destroy();

......所以:

<?php session_start(); session_destroy(); ?>