2

我一直在为我的登录进行会话验证,以确保用户登录以查看页面。我不断收到此错误:

致命错误:在第 3 行的 /usr/local/var/www/CodeTest /ci/application/controllers/staff_c.php 中找不到类 'MY_Staffcontroller'

我的staff_c页面看起来像这样:

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

class Staff_c extends MY_Staffcontroller {

    function homepage()
    {
        $data['main_content'] = 'homepage_view';
        $this->load->view('includes/template', $data);
    }
}

我一直在到处阅读相同的问题,他们说的几乎一样...

您的控制器是否位于应用程序/核心中?

嗯,是的。我似乎无法通过这个驼峰!

控制器图像

这是里面的代码My_Staffcontroller.php

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

class MY_staffcontroller extends CI_Controller {

    function __construct()
    {
        parent::__construct();

        $loggedin = $this->session->userdata('loggedin');
        if(!isset($loggedin) || $loggedin != TRUE);
        {
            die($this->load->view('denied'));
        }
    }
}

我知道这是用户错误,因为这只是我使用 CodeIgniter 的第二天,但我似乎找不到合适的解决方法?

我已经尝试过这个教程,但仍然没有,还有这个

即使关注这个视频也让我停留在会话部分。

而我就是无法让它发挥作用。

4

1 回答 1

4

请记住,Linux 是区分大小写的,而 Windows 是不区分大小写的。

把你MY_Staffcontroller放在application/core/MY_Controller.php文件里面

您的MY_Controller.php文件应如下所示(减去所有其他功能,这是一个最小的示例)

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

class MY_Controller extends CI_Controller
{
   public function __construct() 
   {
       parent::__construct(); 
   }
}
class MY_Staffcontroller extends MY_Controller 
{
    public function __construct() 
    {
       parent::__construct();
    }
    public function sayHello()
    { 
        echo "Hello, I am a function within MY_Staffcontroller.php";
    }
}

例子

这将位于/application/controllers目录中 基本上任何位于OR中protected的函数都可以从扩展扩展控制器的派生控制器访问。在这种情况下,它将是publicMY_ControllerMY_StaffcontrollerMY_Staffcontroller

class Public_Staff_Controller extends MY_Staffcontroller 
{
    public function __construct()
    {
        parent::__construct();
    }
    public function index()
    {
        $this->sayHello();
    }
}

/* end of file /application/core/MY_Controller.php */
于 2013-02-15T03:43:23.877 回答