如何使用Jquery/Javascript清除PHP会话?

Jer*_*lle 7 php session jquery

只想询问是否可以使用jquery或javascript进程清除PHP会话?因为我想要做的是使用对话框清除PHP会话.如果用户单击"确定"按钮,它将处理未设置的功能.在我的页面中有一个结帐过程,在用户单击"确定"按钮后,它将提示一个对话框,如果用户单击"确定"按钮,它将取消设置PHP会话,并将重定向到另一个页面.

这是我的简单代码:

<i class="fa fa-check"></i> <span id="save_registry" class="cursor: pointer">OK</span>

<div id="save_alert" style="display: none">
    <?php unset($this->session->data['cart']);
</div>


....

$('#save_registry').click(function(){

        $('#save_alert').dialog({
            modal: true,
            buttons: {
                Ok: function() {
                    $( this ).dialog( "close" );
                    location = 'index.php?route=common/home'; 
                }
            }
        });

});
Run Code Online (Sandbox Code Playgroud)

ari*_*nmz 10

简单地说:你不能,直接.

PHP是服务器端语言,而javascript是客户语言,这意味着除了您收到的文档和与您交互之外,它们之间没有其他连接.会话由服务器存储和管理.

但是,正如War10ck建议的那样,您可以调用清除会话的服务器端脚本.像这样的东西:

PHP:

<?php
    /* 
     * session_start();
     * Starting a new session before clearing it
     * assures you all $_SESSION vars are cleared 
     * correctly, but it's not strictly necessary.
     */
    session_destroy();
    session_unset();
    header('Location: continue.php'); 
    /* Or whatever document you want to show afterwards */
?>
Run Code Online (Sandbox Code Playgroud)

HTML/JavaScript的:

<script type="text/javascript">
    function logout() {
        document.location = 'logout.php';
    }
    LogoutButton.addEventListener('click', logout, false);
</script>

<button id="LogoutButton">Log out</button>
Run Code Online (Sandbox Code Playgroud)

甚至执行异步调用:

function logout() {
    var xhr = new XMLHttpRequest();
    xhr.onload = function() {
        document.location = 'continue.php';
    }
    xhr.open('GET', 'logout.php', true);
    xhr.send();
}
Run Code Online (Sandbox Code Playgroud)


Kha*_*lid 5

有一种方法可以直接从 javascript 中执行此操作...首先,您必须声明一个通过其键清除 cookie 的函数

function removeCookie(cookieName)
{
    cookieValue = "";
    cookieLifetime = -1;
    var date = new Date();
    date.setTime(date.getTime()+(cookieLifetime*24*60*60*1000));
    var expires = "; expires="+date.toGMTString();
    document.cookie = cookieName+"="+JSON.stringify(cookieValue)+expires+"; path=/";
}
Run Code Online (Sandbox Code Playgroud)

现在你所要做的就是PHPSESSID像这样删除一个带有“ ”键的cookie

removeCookie("PHPSESSID");
Run Code Online (Sandbox Code Playgroud)

现在当你var_dump($_SESSION)发现它是空数组时