检查会话是否仍在运行的正确方法是什么?有哪些方法?

时间:2015-05-11 17:50:37

标签: javascript php ajax session

所以我已经有了第一次使用网页设计的经历,但是我做了一些我不喜欢的事情,主要是因为时间的关系。所以无论如何,我不知道哪个是处理会话的正确方法。我在之前的项目中所做的是将PHP嵌入HTML并基于$ _SESSION中的任何内容,通常是id和用户类型编号,然后我通过嵌入式打开或关闭网站的部分内容PHP。

然而,这不是我最初想要这样做的原因,起初我想做的是制作一个JavaScript代码,通过AJAX向服务器发送请求,并检查会话是否仍处于活动状态,并且基于在网站的开放/关闭部分,但我必须在每个页面上提出请求,并经常确保用户已登录。我应该处理这样的客户端吗?

有哪些其他方法可以检查会话但不嵌入PHP并使用JavaScript来修改HTML文档。

1 个答案:

答案 0 :(得分:0)

要做到这一点,你需要的只是循环上的ajax请求和检查会话的php文件。

Javascript

function checkLogin(un) { //put this function in a loop of some sort depending on how you want to use it
  var xmlhttp = new XMLHttpRequest();
  xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
      logout(xmlhttp.responseText);
    }
  }
  xmlhttp.open("GET", "checklogin.php?un=" + un, true);
  xmlhttp.send();
}

function logout(resp) {
  if (resp == "false") { //comparing actual text, not boolean
    window.location.href = 'logout.php'; //destroy the session or something
  }
}

PHP文件checklogin.php(非常简单)

<?php
if ($_SESSION[$_GET['un']] != true) {
  echo 'false';
}
?>

php将取决于你如何存储你的会话,但在这种情况下,它只是使用一个以其用户名为标准的会话,如果你已登录就存储true。如果你决定,我会建议让它更复杂实际上使用它。