我一直在为我的登录进行会话验证,以确保用户登录查看页面。我一直收到这个错误:
致命错误:/ usr / local / var / www / CodeTest中找不到类'MY_Staffcontroller' 第3行的/ci/application/controllers/staff_c.php
我的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,但我似乎找不到合适的解决方法吗?
即使关注this video,我仍然坚持会话部分。
我无法让这个工作。
答案 0 :(得分: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
目录中
基本上,位于protected
OR public
中的任何MY_Controller
和MY_Staffcontroller
函数都可以从扩展控制器的派生控制器访问。在这种情况下,它将是MY_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 */