0

我创建了一个辅助类authentication_helper,其中我创建了一个varify_session()检查会话的函数。我正在使用 jquery,我在其中setTimeout通过 ajax 调用调用 somee 函数,但是这个函数的调用转到核心 PHP 代码类,现在当我调用varify_session()核心 php 时它不起作用但是当我调用 codeigniter 类时它工作那么我应该怎么做才能在核心 php 代码中调用它,以便它还使用 1 setTimeout 函数检查会话。我的帮助文件位于

/www
  /sample
    /application
      /helpers
         /authentication_helper
    /controller
      /core_php.php
      /other php clases 

里面的代码authentication_helper是这样的

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

function varify_session(){
    $CI = &get_instance();
    $user_session_id = $CI->session->userdata('logged_in');

    if($user_session_id ==  '') {
        redirect('login');
    }
}
?>

更新

4

1 回答 1

0

CodeIgniter 中的帮助文件只是其中嵌入了函数的 php 文件。他们没有什么特别的“CodeIgniter”。

您只需在“核心 PHP 代码类”中包含该特定文件:

// inside your core php class
include('path/to/my/ci/application/helper/authentication_helper.php');

更新

好的,在阅读了一些评论并更仔细地查看了您的问题后,我注意到您的结构没有正确设置,无法按照设计使用的方式使用 CodeIgniter。

我的第一行问题是: core_php.php文件实际上是做什么的?你是想把它用作控制器吗?或者你只是把它用作一个对象?”

  • 如果您尝试将其用作控制器 - 那就不要。通过扩展将它变成一个实际的 CodeIgniter 控制器类CI_Controller。然后,您将像任何其他帮助程序一样加载身份验证帮助程序: $this->load->helper('authentication');

  • 如果您只是将它用作对象(我假设是这种情况),则将其放入您的libraries文件夹并从 CodeIgniter 加载的文件中调用它(这意味着您有可用的 CI 实例)。将该文件放入libraries文件夹后,您可以使用 -- 加载它,$this->load->library('core_php');然后您可以使用该文件调用方法:$this->core_php->method_name();. 在需要它的 core_php 方法中,您将加载身份验证助手:$this->load->helper('authentication');

以这种方式设置文件将利用 CodeIgniter 加载机制并允许您访问 CI 实例 - 这就是您收到Trying to get property of non-object错误时的问题(您试图从 CI 引导程序之外获取 CI 实例) .

如果此设置没有帮助,那么我们需要查看相关文件的实际内容。

于 2013-04-08T20:10:54.660 回答