Php 使用Codeigniter验证登录时出现的问题

Php 使用Codeigniter验证登录时出现的问题,php,html,forms,codeigniter,validation,Php,Html,Forms,Codeigniter,Validation,,使用GET时,数组不是空的,但即使是正确的登录详细信息也不起作用。使用codeigniter在站点中创建登录区域,但密码未正确验证或根本未验证。我已经研究过了,但我不确定为什么这个问题仍然存在。它只是说每个密码都是错的。此外,密码不是通过POST获取的,而是通过GET获取的。这是视图区域: <div class="panel-heading"> <h3 class="panel-title">Please Sign In&

,使用GET时,数组不是空的,但即使是正确的登录详细信息也不起作用。使用codeigniter在站点中创建登录区域,但密码未正确验证或根本未验证。我已经研究过了,但我不确定为什么这个问题仍然存在。它只是说每个密码都是错的。此外,密码不是通过POST获取的,而是通过GET获取的。这是视图区域:

<div class="panel-heading">
                        <h3 class="panel-title">Please Sign In</h3>
                    </div>
                    <?php if(isset($_SESSION)) {
                        echo $this->session->flashdata('flash_data');
                        } ?>
                    <div class="panel-body">

                    <form action="<?php echo base_url('Login/index'); ?>" method="POST">

                            <fieldset>
                                <div class="form-group">
                                    <input class="form-control" placeholder="Username" name="username" type="text" autofocus>
                                </div>
                                <div class="form-group">
                                    <input class="form-control" placeholder="Password" name="user_password" type="password" value="">
                                </div>
                                <div class="checkbox">
                                    <label>
                                        <input name="remember" type="checkbox" value="Remember Me">Remember Me

                                    </label>
                                </div>
和型号:

function validate($data){
    $this->db->select('id, username');
    //$this->db->from('login');
    $this->db->where('username', $data['username']);
    $this->db->where('user_password', md5($data['user_password']));
    $this->db->limit(1);
    $res = $this->db->get('login')->result_array(); 

    return $res;

    //$query=$this->db->get();
  }

  function __destruct() {
        $this->db->close();
    }

首先,您需要关闭视图页面中的表单标记。然后检查,表单数据已发布到控制器

为什么在模型中注释('login')。请在模型中使用此代码来验证数据库中的用户登录数据

function validate($data){

    $this->db->select('id, username');
    $this->db->from('login');
    $this->db->where('username', $data['username']);
    $this->db->where('user_password', md5($data['user_password']));
    $this->db->limit(1);
    $res = $this->db->get(); 

    if($res->num_rows()){
       return $res->result_array();
    }else{
      return;
    }

  }

首先,您需要关闭视图页面中的表单标记。然后检查,表单数据已发布到控制器

为什么在模型中注释('login')。请在模型中使用此代码来验证数据库中的用户登录数据

function validate($data){

    $this->db->select('id, username');
    $this->db->from('login');
    $this->db->where('username', $data['username']);
    $this->db->where('user_password', md5($data['user_password']));
    $this->db->limit(1);
    $res = $this->db->get(); 

    if($res->num_rows()){
       return $res->result_array();
    }else{
      return;
    }

  }
使用

代替

$_POST
此外,如果您使用了salt,请确保使用salt输入md5密码

md5($this->config['salt'].$data['user_password'])
使用

代替

$_POST
此外,如果您使用了salt,请确保使用salt输入md5密码

md5($this->config['salt'].$data['user_password'])

检查$data['username']是否是访问帖子数据的正确方法。试着把它打印出来。最好以$this->input->post()的形式发送,代码中没有任何错误。尝试在
匿名窗口中运行项目
。我在我的项目中尝试了精确的代码,它工作正常。在controller中的
print\r($result)
上,您得到的结果是什么?MD5不足以进行密码哈希。改为使用和。检查$data['username']是否是访问帖子数据的正确方法。试着把它打印出来。最好以$this->input->post()的形式发送,代码中没有任何错误。尝试在
匿名窗口中运行项目
。我在我的项目中尝试了精确的代码,它工作正常。在controller中的
print\r($result)
上,您得到的结果是什么?MD5不足以进行密码哈希。改为使用and。这类似于在我取出注释时在
get()
中调用表名。它从login.login变成select id,username,其中…当我取出注释时,它类似于
get()
中的call table name。它从login.login变成select id,username,其中…它仍然没有使用POST获取值。它只是将数组留空。当我在模型中取出注释($this->db->from('login'))时,它会得到注释,但这会破坏查询。它仍然无法使用POST获得值。它只是将数组留空。当我在模型中取出注释($this->db->from('login'))时,它会得到它,但这会把查询搞砸。