Из-за этой линии: parent::Controller()
, я предполагаю, что вы используете CodeIgniter 1. Так как вы строите страниц как home
и login
, я предполагаю, что вы начинаете строить новый веб-сайт. Если мои предположения верны, я предлагаю вам использовать последний CodeIgniter (v2.1.0 на данный момент, требуется PHP 5.1.6 или новее). Вы можете получить копию на домашней странице CodeIgniter.
Прежде всего, я думаю, вы должны проверить свой уровень отчетности об ошибках. Для отладки должно быть что-то вроде error_reporting(E_ALL);
. Если это еще не сделано, включите его и снова запустите код. Возможно, после этого вы получите свой собственный ответ:
После этого вы должны попробовать код ниже для своего конструктора, чтобы проверить, что ваш домашний контроллер работает так, как вы ожидали.
function Home()
{
parent::Controller();
echo 'Home Class Initialized';
}
Он должен по крайней мере показать страницу 404. Если он ничего не распечатывает, нам нужна дополнительная информация. Может быть, вы должны включить ведение журнала и анализировать лог-файлы: ищет /application/config/config.php
: $config['log_threshold'] = 2;
Если распечатать последующие «Home Class инициализируется» на 404 сообщении: пожалуйста, проверьте, если ваш контроллер что-то вроде:
public function index()
{
echo 'Invoke default method';
}
Если еще нет, то добавьте его. Вы также можете взглянуть на свой собственный метод по умолчанию here
Если это все еще 404, то извините, я понятия не имею. Возможно, вам стоит разместить больше кода.
Если он распечатывает только «Инициализированный класс дома»: хорошо. Теперь попробуйте эту
function Home()
{
parent::Controller();
if (! $this->session->userdata('id'))
{
echo 'Redirecting to login page';
//redirect ('login');
}
$this->load->model('Home_Model');
}
Если распечатывают Redirecting to login page
, настало время для вас, чтобы раскомментировать //redirect ('login');
и проверьте страницу входа в систему. Следуйте одному и тому же пути с шага 1 & 2. Если нет, проверьте данные сеанса: var_dump($this->session->userdata('id')
.Вы можете узнать больше о PHP лжи, here
В конце концов, если он по-прежнему не удается, рекомендуется использовать __construct()
РНР 5
function __construct()
{
parent::__construct();
if (! $this->session->userdata('id'))
{
redirect ('login');
}
$this->load->model('Home_Model');
}
Другое: если вы используете этот $this->load->model('Home_Model');
, я думаю, что вы вам нужно будет позвонить home_model, как это $this->Home_Model->foo();
или будет доступ к ошибкам NULL
Можете ли вы показать код контроллера входа, пожалуйста. ?? – TechCare99
также расскажите нам, какую версию CI вы используете. – Kokers