Бьется головой о стену, чтобы устранить эту ошибку. Я использую codeigniter 2 с MAMP на локальном хосте. Этот сайт отлично работает на WAMP (Windows 10) и все настройки одинаковы.
У меня есть простая форма входа, которая при отправке даже не затрагивает мой метод сообщения, но отображает ошибку:
Fatal error: Uncaught Error: Class 'CI_Controller' not found in /Applications/MAMP/htdocs/mysite/src/system/core/CodeIgniter.php:237
Я экспериментировал с тестом var_dumps в моей функции dologin. Интересно, что ошибка исчезает, и вывод var_dump отображается, если я добавлю https://localhost/mysite/src/session/dologin прямо в мою адресную строку.
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_dumps) $ config ['base_url'] = '', пусто .htaccess установлен правильно и модуль переписывания Apache включен $ config ['log_threshold'] = 0, журналы отключены