Using POST it remains empty,使用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>
然后是控制器:
$data = array();
print_r($_POST);
if($_POST){
$result=$this->User->validate($_POST);
//print_r($result);
if(!empty($result)){
$data=[
'id'=> $result[0]['id'],
'username'=>$result[0]['username']
];
//print_r($data);
$this->session->set_userdata($data);
redirect(base_url('dashboard/index'));
}else{
$this->session->set_flashdata('flash_data', 'Username or password is incorrect!');
redirect(base_url('login/index'));
}
}
$page='login';
if (!file_exists(APPPATH.'views/'.$page.'.php')){
show_404();
}
$this->load->view($page);
}
和型号:
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();
}
答案 0 :(得分:0)
$(document).keydown(function(e){
if (e.keyCode == 37) {
alert( "left pressed" );
return false;
}
});
答案 1 :(得分:0)
首先,您需要在视图页面中关闭表单标记。然后检查,您的表格数据会发布到控制器。
为什么要在模型中评论$this->db->from('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;
}
}
答案 2 :(得分:0)
使用
$this->input->post()
insted of
$_POST
此外,如果您使用过盐,请确保使用盐密码为md5。
md5($this->config['salt'].$data['user_password'])