使用Jquery Ajax检查OOP PHP $ _SESSION

时间:2016-10-15 06:50:06

标签: php jquery ajax session

我在学校做项目,我需要控制用户有权访问其中一个页面。所有功能都需要通过Ajax。

我的问题在于Ajax的回调。挣扎了几天,但似乎无法解决它。如果我跳过Ajax,它的工作原理。但我需要让它与ajax一起工作。我不知道该用什么作为回调,我已经尝试了很多解决方案,没有工作。

无论会话如何,任何人都可以访问该页面。

Jquery的:

   <script>
   $(window).load( function checkUser() {
    $.post('calling_check_staff.php',
            function(data){
                $(). html(data); // I think the problem is here?????    
         });
    });
  </script>

calling_check_staff.php

<?php
session_start();
include ("php-classes/classUsers.php");
// Calling the class User and controlling that the visitor is logged in
 $user = new User();
    if($user->loggedIn()) {
        }
?>

PHP类

 public function loggedIn() {
    // Control, accessed page via login page.
    if(isset($_SESSION["username"]) && $_SESSION["username"] != null) {
     }  else { header("location:index.php");
            } } 

1 个答案:

答案 0 :(得分:1)

您无法在AJAX请求中设置header。您可以做的是发送登录或请求状态以响应 AJAX请求。您可以使用JSON字符串返回响应并在客户端验证相同的内容。

如果用户已登录,请发送JSON这样的

{
    "status":1
}

如果用户未登录,请发送JSON这样的内容,

{
    "status":0
}

现在检查客户端状态的值,以了解用户是否已登录。如果用户已经登录,您还可以发送HTML内容以及状态字段以在网页上显示。如果您从脚本获取状态字段,则刷新页面或将页面重定向到 index.php 0