форма входа не появляется - PullRequest
1 голос
/ 15 декабря 2011

Я новичок в CodeIgniter и использую Tank Auth для своей формы входа. Когда я пытаюсь вставить Tank Auth в свой шаблон, форма входа вообще не появляется. Я ничего не менял, кроме контроллера.

Вот код моего контроллера:

public function __construct(){
    parent::__construct();
    $this->load->helper(array('form','url'));
    $this->load->library('tank_auth');
    //$this->load->model('users_model');
}
public function index(){
    if (!$this->tank_auth->is_logged_in()) {
        $data['loginform']='login_form';
        $this->load->view('tampilan',$data);
        //redirect('/auth/login/');
    } else {
        $data['user_id']    = $this->tank_auth->get_user_id();
        $data['username']   = $this->tank_auth->get_username();
        $this->load->view('welcome', $data);
    }               
}

и вот мой шаблон в папке просмотра:

<div id="page">

<div id="bg1">

    <div id="bg2">

        <div id="bg3">

            <!-- content -->

            <?php  $this->load->view($loginform); ?>

            <!-- end content -->

            <!-- sidebar -->

            <?php echo $this->load->view('content'); ?>

            <!-- end sidebar -->

        </div>

    </div>

</div>

Я думаю, это простой код, потому что я просто меняю контроллер, но почему он не отображается в браузере?

1 Ответ

0 голосов
/ 15 декабря 2011

Код сам по себе выглядит правильно. Что я могу сказать, так это то, что вы вызываете неправильное представление и уровень сообщений об ошибках слишком низок, чтобы показывать вам ошибки. Я имею в виду:

  1. Ваш login_form.php просматривает пользовательский? Правильный ли путь? Попробуйте использовать простое, почти пустое представление (не знаете, с текстом «привет, мир»?), Чтобы увидеть, правильно ли оно вызывается.
  2. Если вы используете стандартное представление login_form.php, предоставляемое Tank Auth, и вы скопировали содержимое как есть, оно должно быть внутри папки auth (поэтому оно входит в загруженный пакет). Поэтому вы должны назвать его с $data['auth/login_form']; в вашем контроллере,
  3. В случае пункта 2) исходный Tank Auth login_form.php содержит много переменных, которые в вашем коде не определены. Если вы не отображаете ошибки, вы получите пустую страницу. Установите для ENVIRONMENT значение «development» в index.php, а если этого недостаточно, поместите его в начало вашего index.php

    error_reporting(E_ALL);
    ini_set('display_errors',1);
    

    Чтобы просто проверить функциональность Tank Auth, попробуйте вызвать его с оригинальным контроллером, перейдя к http://www.yoursite.com/index.php/auth. Если это сработает, взгляните на метод login() контроллера аутентификации, вы увидите, как и какая переменная нужна исходному login_form.php.

  4. Незначительная точка, вам не нужно echo представление, поэтому достаточно $this->load->view('content');.

...