在链接直接之前,通过JavaScript/jQuery清空PHP会话变量



我有以下问题:我在PHP会话变量中存储了几个变量。现在,如果我单击一个链接,我想将所有变量,变量2和变量3的值设置为空,然后将用户引导到链接页面。如何确保将变量设置为在加载testpage.php之前将其设置为空?有100%安全的方法吗?

<?
$_SESSION["variable1"] = "value1";
$_SESSION["variable2"] = "value2";
$_SESSION["variable3"] = "value3";
?>
<a href="testpage.php" id="killswitch">Go to but kill sessions before loading page</a>
<script>
$(function(){
            $(document.body).on('click touchstart', '#killswitch', function(){
                <?
$_SESSION["variable1"] = "";
$_SESSION["variable2"] = "";
$_SESSION["variable3"] = "";
?>
            });
        });
</script>

可能是向服务器提出AJAX请求的最简单方法,该请求修改了会话变量。

因此,您需要在服务器端上进行一个简单的脚本,并在您的事件中进行jQuery中的$.ajax调用。首先,您应该防止链接被调用,因为首先我们启动了Ajax请求。在此请求的回调中,我们调用链接的HREF。

看起来像这样:

$(document.body).on('click touchstart', '#killswitch', function(event){
  event.preventDefault();
  $.ajax({
    url: "killswitch.php"
  }).done(function() {
    location.href = $(this).attr('href');
  });
});

希望这会有所帮助。

最新更新