在jQuery中设置的php中销毁会话?

时间:2014-06-30 09:03:26

标签: php jquery session

如何在jquery设置的php中销毁会话。

注册会话的代码是:

$('#psubmit').click(function() {  

    $.post("single-us_portfolio.php", {"myusername": "myusername"});    

});

并访问custom.php上的会话代码为:

    session_start();
$_SESSION["myusername"] = $_POST["myusername"];
if(!session_is_registered(myusername)){

echo '<meta http-equiv="Refresh" content="1; url=http://www.ididthisfilm.com/lex_tmp2/the-lexicon/">';
}

现在我想在此表单提交中销毁此会话:

<form >
<input type="file" class="js-file-validation-image" name="file" id="filed"   required="required">
<input type="submit" value="PUBLISH PHOTO" id="hello" name="publishpost" >
</form>

3 个答案:

答案 0 :(得分:1)

你想破坏会话的地方包括以下代码

说这是在session_destroy.php文件中

<?php 
session_start();
session_destroy();//OR use unset if u want to destroy individual session.
clearstatcache();
?>

在任何你想要的事件上给这个文件调用ajax。

对于ajax电话

jQuery("#psubmit").mousedown(function(){

 hasBeenClicked = 1;                            
 //AJAX call
  $.ajax({
        url: 'session_destroy.php',
        type: 'POST',
        dataType: "json",
        data: {

        },
        success: function(data){                                

        }
    });
 ////AJAX call

  });   

答案 1 :(得分:0)

会话在服务器上维护,无法在不向服务器发送请求的情况下在客户端上删除。所以你应该为后一种形式提供另一个api来破坏会话服务器端,就像设置会话服务器端一样。

答案 2 :(得分:0)

你需要像这样破坏jQuery帖子上的会话:

$('#hello').click(function() {  

    $.post("destroy.php", function(){  
        location.reload();
    });
});

然后在destroy.php

sessionstart();
sessiondestroy();

如果您在表单上使用它,则必须确保已阻止默认表单提交,如果您希望它在不重新加载的情况下进行ajax调用。