CodeIgniter:我无法登录

时间:2010-10-27 10:14:33

标签: codeigniter login

我正在尝试在CodeIgniter中创建一个登录脚本,但我只有一个空白页面。

我希望它说“用户名或密码错误”,如果用户名和密码正确,则应将session设置为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 :(得分:0)

您的代码完全错误,并且不遵循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?如果是这样,我建议遵循教程。