如何使用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