【问题标题】:Checking OOP PHP $_SESSION with Jquery Ajax使用 Jquery Ajax 检查 OOP PHP $_SESSION
【发布时间】:2016-10-15 06:50:06
【问题描述】:

我在学校做一个项目,我需要控制用户有权访问其中一个页面。所有功能都需要通过 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");
            } } 

【问题讨论】:

    标签: php jquery ajax session


    【解决方案1】:

    您不能在 AJAX 请求中设置 header。您可以做的是发送登录或请求状态以响应 AJAX 请求。您可以使用JSON 字符串返回响应并在客户端进行验证。

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

    {
        "status":1
    }
    

    如果用户未登录,请像这样发送JSON

    {
        "status":0
    }
    

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

    【讨论】:

      猜你喜欢
      • 2018-07-27
      • 2010-12-07
      • 2016-12-03
      • 2020-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-29
      • 2013-09-29
      相关资源
      最近更新 更多