在Javascript函数中销毁PHP SESSION

时间:2014-04-17 07:00:36

标签: javascript php ajax session destroy

我在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>

3 个答案:

答案 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