MAMP и CodeIgniter - Простая форма сообщения возвращает Фатальная ошибка: Uncaught Ошибка: класс 'CI_Controller' не найден - PullRequest
0 голосов
/ 18 марта 2020

Бьется головой о стену, чтобы устранить эту ошибку. Я использую 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, журналы отключены

1 Ответ

0 голосов
/ 19 марта 2020

Кажется, что это работает

В системе / ядре / CodeIgniter. php, около строки 75, измените:

set_error_handler('_exception_handler');

на ...

set_exception_handler('_exception_handler');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...