我在session
脚本中创建了php
我想在javascript中销毁我的php session
当我点击Destroy Session
然后javascript函数destroy()
调用并销毁SESSION['user']
。
<?php
ob_start();
session_start();
SESSION['user'] = "test 123";
echo "<a onClick = 'destroy()'>Destroy Session</a>";
?>
<script>
Function destroy(){
session_destroy(); // Like `PHP` I want destroy Session in `javascript`
}
</script>
答案 0 :(得分:5)
我认为你应该使用AJAX从Javascript中销毁函数。喜欢:
.js
代码:
function destroy_session(){
var xmlhttp = getXmlHttp();
var xmlhttp = new XMLHttpRequest();
xmlhttp.open('GET','./destroy_session.php', true);
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState == 4){
if(xmlhttp.status == 200){
alert(xmlhttp.responseText);
}
}
};
xmlhttp.send(null);
}
destroy_session.php
代码:
<?php
session_start();
$_SESSION = array();
if (ini_get("session.use_cookies")) {
$params = session_get_cookie_params();
setcookie(session_name(), '', time() - 42000,
$params["path"], $params["domain"],
$params["secure"], $params["httponly"]
);
}
session_destroy();
echo 'Session was destroyed';
?>
答案 1 :(得分:2)
你不能直接破坏javascript中的php会话,因为javascript正在客户端上运行,而php正在服务器上运行。
但你可以在php中删除php中的会话cookie - 当它被使用时!
但是这只会从会话中分离客户端,不会破坏会话。
答案 2 :(得分:0)
您可以使用AJAX加载执行session_destroy()
的PHP页面。 jQuery具有非常简单的ajax函数,记录为here。