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)
有一种方法可以直接从 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)发现它是空数组时