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

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

这是我的简单代码:

 OK 
session->data['cart']);
.... $('#save_registry').click(function(){ $('#save_alert').dialog({ modal: true, buttons: { Ok: function() { $( this ).dialog( "close" ); location = 'index.php?route=common/home'; } } }); });

简单地说:你不能, 直接

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

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

PHP:

  

HTML / JavaScript的:

   

甚至执行异步调用:

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

有一种方法可以直接从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=/"; } 

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

 removeCookie("PHPSESSID"); 

现在当你使用var_dump($_SESSION)你会发现它是空数组

您无法直接使用Javascript清除php会话。

PHP是服务器端语言,而Javascript是客户端语言。

但是,您可以将ajax请求抛出到处理销毁的指定页面。

像这样:

 // Client-side $.post("logout.php", {"can_logout" : true}, function(data){ if(data.can_logout) // redirect the user somewhere }, "json");  true)); ?> 

或者只是将用户指向处理会话销毁的某个页面; 即logout.php