doudou201701 2014-12-11 06:56
浏览 72

PHP CodeIgniter自定义登录表单

I am trying to create a login form using CodeIgniter in PHP. I have implemented the functionality, working okay, however I cannot manage to style my for with a custom stylesheet.

Here is the code I have for the login view:

<!DOCTYPE html>

<html lang='en'>
    <head>
        <meta charset="UTF-8" /> 
        <title>
            DTI Manager
        </title>
        <link rel="stylesheet" type="text/css" href="/DTIManager/assets/css/style.css" />
    </head>

    <body>

        <div id="wrapper">

            <?php echo validation_errors();?>
            <?php $attributes = array('class' => 'LoginController', 'id' => 'login-form'); 
            echo form_open('LoginController/checkLogin', $attributes);?>
            <form name="login-form" class="login-form" action="" method="post">
                <div class="header">
                    <h1>Autentificare</h1>
                    <span>Pentru a accesa informatii despre comenzi transporturi trebuie sa fiti autentificat.</span>
                </div>
                <div class="content">
                    <input name="username" type="text" class="input username" placeholder="Utilizator" />
                    <div class="user-icon"></div>
                    <input name="password" type="password" class="input password" placeholder="Parola" />
                    <div class="pass-icon"></div>       
                </div>

                <div class="footer">
                    <input type="submit" name="submit" value="Login" class="button"/>
                </div>

            </form>

        </div>
        <div class="gradient"></div>


    </body>
</html>

And this is my LoginController class:

class LoginController extends CI_Controller {

    function __construct() {
        parent::__construct();
    }

    public function index() {
        $this->load->view('login');
    }

    public function checkLogin() {
        $this->form_validation->set_rules('username', 'Utilizator', 'required');
        $this->form_validation->set_rules('password', 'Parola', 'required|callback_verifyUser');

        if ($this->form_validation->run() == false) {
            $this->load->view('login');
        } else {
            redirect('HomeController/index');
        }
    }

    public function verifyUser() {
        $name = $this->input->post('username');
        $pass = $this->input->post('password');

        $this->load->model('LoginModel');

        if ($this->LoginModel->login($name, $pass)) {
            return true;
        } else {
            $this->form_validation->set_message('verifyUser', 'Incorrect Email or Password. Please try again.');
            return false;
        }
    }

}

I tried adding the attribute to the form_open function the ID of my form but it wasn't successful, the buttons and fields are still not styled accordingly.

Any hints are highly appreciated.

  • 写回答

1条回答 默认 最新

  • doukai1226 2014-12-11 15:32
    关注

    Try echoing the base_url() in front of your linked css files.

     <link rel="stylesheet" type="text/css" href="<?php echo base_url();?>DTIManager/assets/css/style.css" />
    

    Of course, if you use an .htaccess you should ignore the folder that has the assets in your project with a proper rewrite rule.

     RewriteCond $1 !^(index\.php|DTIManager|assets|robots\.txt|error\.html)
    
    评论

报告相同问题?