尝试使用数据库验证用户信息时,Codeigniter函数不起作用
我正在创建一个登录系统,由于某些原因,即使我输入了正确的电子邮件和密码,它也会重定向回登录页面。被调用的模型函数似乎不起作用。这是我的密码: 控制器:尝试使用数据库验证用户信息时,Codeigniter函数不起作用,codeigniter,validation,model,Codeigniter,Validation,Model,我正在创建一个登录系统,由于某些原因,即使我输入了正确的电子邮件和密码,它也会重定向回登录页面。被调用的模型函数似乎不起作用。这是我的密码: 控制器: <?php defined('BASEPATH') OR exit('No direct script access allowed'); class Login extends CI_Controller { function validation() { $this
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Login extends CI_Controller {
function validation()
{
$this->load->library('form_validation');
$this->form_validation->set_rules('email', 'Email', 'required|trim');
$this->form_validation->set_rules('password', 'Password', 'required|md5');
if ($this->form_validation->run()){
redirect('login/valid_credentials');
}else{
$this->load->view('login_form');
//return false;
}
}
function valid_credentials(){
$this->load->model('login_model');
// oh i see
if ($this->login_model->match_login()){
//return true;
$data = array(
'id'=>$q['id'],
'email'=>$this->input->post('email'),
'is_logged_in'=> 1);
$this->session->set_userdata($data);
$this->load->view('dashboard_view', $data);
}else{
$this->load->view('login_form');
}
}
视图:
无需在一个函数中验证表单和在另一个函数中检查登录。使用一个函数完成所有操作
更改
控制器代码更改和优化
型号代码已更改
一些参考资料
(个人推荐此网站)
试试这个
控制器
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Login extends CI_Controller {
function validation()
{
$this->load->library('form_validation');
$this->form_validation->set_rules('email', 'Email', 'required|trim');
$this->form_validation->set_rules('password', 'Password', 'required|md5');
if ($this->form_validation->run() == FALSE )
{
$this->load->view('login_form');
//return false;
}
else{
$this->load->model('login_model');
$email = $this->input->post('email');
$password = $this->input->post('password');
$result = $this->login_model->match_login($email, $password);
if ($result ==false) {
echo "Invalid Cardinals";
}
else
{
$session = array(
'id'=>$result[0]['id'],
'email'=>$this->input->post('email'),
'is_logged_in'=> 1
);
if (!$this->session->set_userdata($session)) {
$data['modelData'] = $result;
$data['sessionData'] = $session;
$this->load->view('dashboard_view', $data);
}
else {
echo "Error in session";.
}
}
}
}
无需在一个函数中验证表单和在另一个函数中检查登录。使用一个函数完成所有操作
更改
控制器代码更改和优化
型号代码已更改
一些参考资料
(个人推荐此网站)
试试这个
控制器
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Login extends CI_Controller {
function validation()
{
$this->load->library('form_validation');
$this->form_validation->set_rules('email', 'Email', 'required|trim');
$this->form_validation->set_rules('password', 'Password', 'required|md5');
if ($this->form_validation->run() == FALSE )
{
$this->load->view('login_form');
//return false;
}
else{
$this->load->model('login_model');
$email = $this->input->post('email');
$password = $this->input->post('password');
$result = $this->login_model->match_login($email, $password);
if ($result ==false) {
echo "Invalid Cardinals";
}
else
{
$session = array(
'id'=>$result[0]['id'],
'email'=>$this->input->post('email'),
'is_logged_in'=> 1
);
if (!$this->session->set_userdata($session)) {
$data['modelData'] = $result;
$data['sessionData'] = $session;
$this->load->view('dashboard_view', $data);
}
else {
echo "Error in session";.
}
}
}
}
我试过了,但它返回了false,给出了“无效基数”,我手动将电子邮件和md5密码输入数据库。它仍然给了无效的红衣主教。md5是否可能为同一密码生成不同的md5散列?删除md5并将简单密码添加到bd。如123456和检查无MD5I取出md5,它仍然返回false,给出“无效基数”。$this->db->where('password',md5($password))
在模型中,alse需要移除第一个md5 i移除的。现在是:$this->db->where('password',$password);我试过了,但它返回了false,给出了“无效基数”,我手动将电子邮件和md5密码输入数据库。它仍然给了无效的红衣主教。md5是否可能为同一密码生成不同的md5散列?删除md5并将简单密码添加到bd。如123456和检查无MD5I取出md5,它仍然返回false,给出“无效基数”。$this->db->where('password',md5($password))
在模型中,alse需要移除第一个md5 i移除的。现在是:$this->db->where('password',$password);
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Login extends CI_Controller {
function validation()
{
$this->load->library('form_validation');
$this->form_validation->set_rules('email', 'Email', 'required|trim');
$this->form_validation->set_rules('password', 'Password', 'required|md5');
if ($this->form_validation->run() == FALSE )
{
$this->load->view('login_form');
//return false;
}
else{
$this->load->model('login_model');
$email = $this->input->post('email');
$password = $this->input->post('password');
$result = $this->login_model->match_login($email, $password);
if ($result ==false) {
echo "Invalid Cardinals";
}
else
{
$session = array(
'id'=>$result[0]['id'],
'email'=>$this->input->post('email'),
'is_logged_in'=> 1
);
if (!$this->session->set_userdata($session)) {
$data['modelData'] = $result;
$data['sessionData'] = $session;
$this->load->view('dashboard_view', $data);
}
else {
echo "Error in session";.
}
}
}
}
class Login_model extends CI_Model{
public function match_login($email, $password){
$this->db->where('email', $email);
$this->db->where('password', md5($password));
$query = $this->db->get('user');
$result = $query->result_array();
if (empty($result))
{
return false;
}
else
{
return $result;
}
}
}