【发布时间】:2020-06-29 23:17:04
【问题描述】:
把我的头撞到墙上来解决这个错误。我在本地主机上使用带有 MAMP 的 codeigniter 2。该站点在 WAMP (Windows 10) 上完美运行,所有配置都相同。
我有一个简单的登录表单,在提交时甚至没有点击我的 post 方法,而是显示错误:
Fatal error: Uncaught Error: Class 'CI_Controller' not found in /Applications/MAMP/htdocs/mysite/src/system/core/CodeIgniter.php:237
我已经在我的 dologin 函数中尝试了测试 var_dumps。有趣的是,如果我直接在地址栏中添加https://localhost/mysite/src/session/dologin,错误就会消失,并且会显示 var_dump 的输出。
Core/CodeIgniter.php 第 235 - 238 行
function &get_instance()
{
return CI_Controller::get_instance();
}
登录表单
<form action="https://localhost/mysite/src/session/dologin" method="post">
<label for="username">Username</label>
<input type="text" id="username" name="username" />
<label for="password">Password</label>
<input type="password" id="password" name="password" />
<button type="submit">Login</button>
</form>
CI登录功能(加载登录视图)
public function login()
{
$this->output->enable_profiler(false);
$this->data['system_message'] = null;
if (file_exists(SYSTEM_MESSAGE)) {
$this->data['system_message'] = file_get_contents(SYSTEM_MESSAGE);
}
$this->template->write_view('content', 'session/login', $this->data);
$this->template->render();
}
CI登录表单发布功能
public function dologin()
{
global $pre_filter;
$username = $this->input->post('username');
$password = base64_encode($pre_filter['password']);
$auth = $this->rest->post('authentication/sessions', ['username' => $username, 'password' => $password, 'endpoint' => $this->sitecode]);
//...further processing
}
两个 CI 控制器函数都在这个类中,它扩展了一个自定义控制器。
class Session extends MySite_Controller {
}
注意:
BASEPATH 正确(通过多个调试 var_dump 检查)
$config['base_url'] = '', 设置为空白
.htaccess 设置正确且 Apache 的 Rewrite 模块已开启
$config['log_threshold'] = 0, 日志关闭
【问题讨论】:
标签: php codeigniter codeigniter-2