【问题标题】:User Validation is not working in CodeIgniter用户验证在 CodeIgniter 中不起作用
【发布时间】:2017-06-15 07:58:04
【问题描述】:

我是 codeigniter 的新手。我创建了一个登录表单,我想验证我的登录凭据。我搜索了很多解决方案,但我失败了。我无法验证我的凭据。

这是我的视图代码名称为 login_form.php

<div id="login_form">
        <h1>Login Page..!!</h1>
        <?php
        echo form_open('login/validate_credentials');
        echo form_input('username', 'Username');
        echo form_password('password', 'Password');
        echo form_submit ('submit', 'Login');
        ?>

    </div>

这是我的模型代码名称 users_model.php

<?php
class Users_model extends CI_Model{

        function validate(){

                $this->db->where('username', $this->input->post('username'));
                $this->db->where('password', $this->input->post('password'));
                $query = $this->db->get('users');
if ($query->num_rows == 1){
                    return true;
                    }

            }

    } ?>

这是我的控制器代码名称为 Login.php

<?php

    class Login extends CI_Controller{

        function index(){
            $this->load->helper('url'); 
            $this->load->helper('html');
            $data['main_content'] = 'login_form';
            $this->load->view('include/template', $data);
        }

        function validate_credentials(){

            $this->load->model('users_model');
            $query = $this->users_model->validate();




            if($query){


                $data = array(
                                'username'=> $this->input->post('username'),
                                'is_logged_in' => true
                );

                    $this->session->set_userdata($data);
                    redirect('site/dashboard');

            }

            else{
                echo "Wrong";
                //$this->index();   
            }
        }
    }
?>

即使我给它正确的用户名和密码,它也无法验证并回显“错误”,如我的代码所示

【问题讨论】:

  • 请删除验证字,我正在搜索您在代码中编写验证的位置。您有查询而不是验证的问题。

标签: php codeigniter validation


【解决方案1】:

num_rows()应该是一个方法

改成它:

  function validate()
  {

            $this->db->where('username', $this->input->post('username'));
            $this->db->where('password', $this->input->post('password'));
            $query = $this->db->get('users');
            if ($query->num_rows() == 1){
                return true;
                }

  }

https://www.codeigniter.com/user_guide/database/results.html#id4

【讨论】:

  • 谢谢兄弟...!!你保护了我的生命:) :) :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-12
  • 1970-01-01
  • 1970-01-01
  • 2014-09-24
  • 2012-07-14
相关资源
最近更新 更多