CodeIgniter: я не могу войти - PullRequest
       0

CodeIgniter: я не могу войти

1 голос
/ 27 октября 2010

Я пытаюсь создать сценарий входа в CodeIgniter, но у меня есть только пустая страница.

Я хочу, чтобы он сказал «имя пользователя или пароль неверны», и если имя пользователя и пароль верныследует установить для сеанса значение true.Я надеюсь, что кто-то может мне помочь.

Вот мой код:

<?php

class Login extends Controller {

    function index()
    {

        if ($this->_submit_validate() === FALSE) {
            $this->index();
            return;
        }


    }

    private function _submit_validate()
    {
        $this->form_validation->set_rules('username', 'Username',
            'trim|required|');

        $this->form_validation->set_rules('password', 'Password',
            'trim|required');

        return $this->form_validation->run();
    }


    function is_logged_in()
    {
        $is_logged_in = $this->session->userdata('is_logged_in');
        if(!isset($is_logged_in) || $is_logged_in != true)
        {
            echo 'Du har ikke adgang til denne side';   
            die();      
            //$this->load->view('login_form');
        }       
    }

}

А вот мой файл просмотра:

        <h3>Medlem login</h3><br>
        <?php
        echo form_open('login/');
        echo validation_errors('<p class="error">');
        echo form_input('username', 'Username');
        echo form_password('password', 'Password');
        echo "<br />";
        echo form_submit('submit', 'login');
        echo anchor('signup', 'Opret Account');
        echo form_close();
        ?>

1 Ответ

0 голосов
/ 27 октября 2010

Ваш код полностью неверен и не соответствует шаблону RESTful.Для начала, ваша индексная функция заставит ваш скрипт блокироваться:

   function index()
{

    if ($this->_submit_validate() === FALSE) {
        $this->index();
        return;
    }


}

Вместо повторного вызова индексной функции при сбое, вы должны загрузить свое представление формы.Затем добавьте предложение else в случае успешной проверки.Например:

   function index()
{

    if ($this->_submit_validate() === FALSE) {
        $this->load->view('view_form');
    } else {
        $this->function_to_set_session();
    }
}

В function_to_set_session () вы бы затем сделали что-то вроде этого:

function login(){
    // set session vars
    $this->session->set_flash('flash_message_to_show_after_reload'); // this is the message on succes
    redirect('path_to_redirect');
}

Я полагаю, вы только начали работать с CodeIgniter?Если это так, я советую следовать учебнику.

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