Php Codeigniter can';t登录

Php Codeigniter can';t登录,php,Php,这是控制器,当我点击登录按钮时,什么也没发生。我想要的是在验证用户数据时加载成功屏幕,在未验证用户数据时显示错误消息 我已将我的基本控制器设置为登录 <?php class Login extends CI_Controller { /** * * load the magazines */ function __construct(){ parent::__co

这是控制器,当我点击登录按钮时,什么也没发生。我想要的是在验证用户数据时加载成功屏幕,在未验证用户数据时显示错误消息

我已将我的基本控制器设置为登录

<?php

    class Login extends CI_Controller {
        /**  
         * 
         * load the magazines
         */

        function __construct(){
            parent::__construct();
            $this->load->library('form_validation');
            $this->load->model('User','National_Holiday','Updated_Holiday');
        }
        public function index() {
            $this->load->view('login');
        }

        /**  
         * 
         * add a magazine
         */

        public function login(){

            $this->form_validation->set_rules(array (
               array(
                  'field'  => 'username',
                   'label' => 'username',
                   'rules' => 'required',
               ) ,
                array(
                  'field'  => 'password',
                    'label' => 'password',
                    'rules' => 'required|is_numeric',
                ),

            ));

            $this -> form_validation ->set_error_delimiters('<div class="alert alert-error">','</div>');
            if(!$this->form_validation->run()){

               $this->load->view('login');
            }
           else {

               $this->load->view('national_holiday_screen');
           }
        }
}

您必须在表单标记中指定action属性,如下所示:
行动=”http://yoursitename.com/controllername"
在您的情况下,controllername是登录名

有关更多帮助,请参阅: [

希望获得此帮助!

展示了
表单_open()
的工作原理,它是表单助手库中codeigniter的实用函数之一

在您的情况下,您需要以下代码行:

 <?php echo form_open('/login'); ?>
所以你的可能看起来像

example.com/login/login
然后,
form\u open()
看起来就像(尽管它有点笨重)


您可以尝试以下代码

login.php控制器文件

<?php

    class Login extends CI_Controller {
        /**  
         * 
         * load the magazines
         */

        function __construct(){
        parent::__construct();
        $this->load->library('form_validation');
        $this->load->helper('url');
        $this->load->model('User','National_Holiday','Updated_Holiday');
        }
        public function index() {
            $this->load->view('login');
    }

        /**  
         * 
         * add a magazine
         */

        public function validate(){
        $this->form_validation->set_rules(array (
               array(
                  'field'  => 'username',
                   'label' => 'username',
                   'rules' => 'required',
               ) ,
                array(
                  'field'  => 'password',
                    'label' => 'password',
                    'rules' => 'required|is_numeric',
                ),

            ));
      $this -> form_validation ->set_error_delimiters('<div class="alert alert-error">','</div>');
            if(!$this->form_validation->run()){

               $this->load->view('login');
            }
           else {

               $this->load->view('national_holiday_screen');
           }
        }
}
另外,我已经将函数名从login改为validate,因为函数名不应该和类名相似,因为构造函数已经在这里定义了

login.php视图文件

$this->load->helper('url'); 
<?php echo validation_errors(); ?>
<form method="post" action = "<?php echo site_url("login/validate"); ?>">
    <!--  LOGIN DIV STARTS HERE -->
<div>
    <div> <h2> Log In </h2></div>
    <div>
        <lablel for="username"> Username </label>
        <input type="text" name="username" value=""/>
    </div>
    <div>
        <label for="password"> Password </label>
        <input type="password" name="password" value=""/>
    </div>
    <div>
        <br>
        <input type="submit" value="Login">
    </div>
</div>
     <!--  LOGIN DIV ENDS HERE -->
</form>


你在哪里指定表单提交url?我是codeigniter的新手,我不知道。我只是跟着tutorials@Wold请给我一些建议,我需要更改的内容解释了form_open(),这是一种用于启动表单的辅助方法。
example.com/login/login
<?php echo form_open('/login/login'); ?>
<?php

    class Login extends CI_Controller {
        /**  
         * 
         * load the magazines
         */

        function __construct(){
        parent::__construct();
        $this->load->library('form_validation');
        $this->load->helper('url');
        $this->load->model('User','National_Holiday','Updated_Holiday');
        }
        public function index() {
            $this->load->view('login');
    }

        /**  
         * 
         * add a magazine
         */

        public function validate(){
        $this->form_validation->set_rules(array (
               array(
                  'field'  => 'username',
                   'label' => 'username',
                   'rules' => 'required',
               ) ,
                array(
                  'field'  => 'password',
                    'label' => 'password',
                    'rules' => 'required|is_numeric',
                ),

            ));
      $this -> form_validation ->set_error_delimiters('<div class="alert alert-error">','</div>');
            if(!$this->form_validation->run()){

               $this->load->view('login');
            }
           else {

               $this->load->view('national_holiday_screen');
           }
        }
}
$this->load->helper('url'); 
<?php echo validation_errors(); ?>
<form method="post" action = "<?php echo site_url("login/validate"); ?>">
    <!--  LOGIN DIV STARTS HERE -->
<div>
    <div> <h2> Log In </h2></div>
    <div>
        <lablel for="username"> Username </label>
        <input type="text" name="username" value=""/>
    </div>
    <div>
        <label for="password"> Password </label>
        <input type="password" name="password" value=""/>
    </div>
    <div>
        <br>
        <input type="submit" value="Login">
    </div>
</div>
     <!--  LOGIN DIV ENDS HERE -->
</form>