Jquery 运行PHP onClick-session\u destroy

Jquery 运行PHP onClick-session\u destroy,jquery,html,php,Jquery,Html,Php,我希望在用户单击“注销”时销毁会话,我尝试使用jQuery调用函数onClick,然后调用一个.PHP文件,其中包含,session\u destroy() index.php <?php if(isset($_SESSION['username'])) { echo "<li><a href='#' id='logOut' onclick='logOut();'>Log Out</a></li>"; } ?> logOut.

我希望在用户单击“注销”时销毁会话,我尝试使用jQuery调用函数onClick,然后调用一个.PHP文件,其中包含,
session\u destroy()

index.php

<?php  
if(isset($_SESSION['username'])) {
  echo "<li><a href='#' id='logOut' onclick='logOut();'>Log Out</a></li>";
}
?>
logOut.php

<?php
  session_destroy();
?>


当我单击“注销”时,似乎什么都没有发生,我在Chrome开发控制台中也没有收到任何错误。问题是什么?

您正在使用AJAX请求。要直接注销,只需直接调用
logOut.php
文件

function logOut() {
  window.location = "../Controller/logOut.php";
  return false;
}
或者最简单的方法:

<?php  
if(isset($_SESSION['username'])) {
  echo "<li><a href='../Controller/logOut.php' id='logOut'>Log Out</a></li>";
}
?>


销毁会话后,您可能需要将重定向添加到
logOut.php
文件。

在调用
session\u destroy()之前,必须先启动会话。



用ajax破坏会话不会让页面神奇地重新加载?您是否查看了“开发人员工具”下的“网络”选项卡,以查看$.get调用是否实际启动?如果刷新页面,您是否仍有会话?@Sann-无论这是否是最好的方式,您都不应该说“…我听说过的最愚蠢的事情之一”给寻求帮助的人。第一行是:“为了完全终止会话,就像注销用户一样,会话id也必须取消设置。如果使用cookie传播会话id(默认行为),则必须删除会话cookie。我猜他根本不想重新加载页面,所以window.location可能不是最好的选择。
<?php  
if(isset($_SESSION['username'])) {
  echo "<li><a href='../Controller/logOut.php' id='logOut'>Log Out</a></li>";
}
?>
<?php
  session_start();
  session_destroy();
  header("Location: login.php");   //redirect your page to login page
?>