单击注销按钮时会话未被破坏


Session not destroyed upon clicking logout button

我一直试图在单击注销按钮时使用ajax函数破坏会话,但它确实通过ajax函数调用了我的php脚本中的函数

AJAX功能

<div id="logout_btn" class="btn-header transparent pull-right">
    <span>
         <a href="<?php echo APP_URL; ?>login.php" title="Sign Out" onclick="logoutck()" ><i class="fa fa-sign-out"></i></a> 
    </span>
    <script>
        function logoutck() {
            var sendingData = { jsonrpc: "2.0", method: "logout"};            
            $.ajax({
                    type: "POST",        
                    url: "/New_Dashboard/dashboard_html/server.php",
                    contentType: 'application/json; charset=utf-8',
                    dataType: "json",
                    async: false,
                    data: JSON.stringify(sendingData),
                    success: function( msg ) {
                        alert( "Data Saved: " + msg.result );
                    }
            });
        }
    </script>

破坏会话的PHP函数

function logout(){
    session_start();
    if(isset($_SESSION)){
        session_destroy();
    }
    header("Location: login.php");
}

首先,您需要编辑这样的标签:

<div id="logout_btn" class="btn-header transparent pull-right">
    <span>
         <a href="logout.php"><i class="fa fa-sign-out"></i></a> 
    </span>
</div>

另外,去掉所有不需要的JavaScript。

现在,您需要忽略注销功能,只需创建一个名为logout.php的新文件

<?php
    session_start();
    session_destroy();
    header("Location: login.php");
    exit(0);
?>

这可能是使用会话将用户注销的最简单示例。您可能需要添加以满足您的需求。

创建这样的链接:

<a href="logout.php" >Logout</a>

您的登录.php:

<?php
session_start();
session_destroy();
header("location:login.php");
?>

如果登录成功,则在登录验证.php文件中设置$_SESSION['login'] = 1;。然后使用以下代码注销。

<?php
 session_start();
 unset($_SESSION['login']);
 header("Location: login.php");
?>