我得到了这个Codeigniter错误,因为我试图实现简单的登录应用程序,但当我插入电子邮件和密码登录表单时,它以相同的形式响应,我无法登录
这是我的模型功能:
class User_model extends CI_Model {
public function __construct()
{
parent::__construct();
}
function login($email,$password)
{
$this->db->where("email",$email);
$this->db->where("password",$password);
$query=$this->db->get("user");
if($query->num_rows()>0)
{
foreach($query->result() as $rows)
{
//add all data to session
$newdata = array(
'user_id' => $rows->id,
'user_name' => $rows->username,
'user_email' => $rows->email,
'logged_in' => TRUE,
);
}
$this->session->set_userdata($newdata);
return true;
}
return false;
}
控制器:
class User extends CI_Controller{
public function __construct()
{
parent::__construct();
$this->load->model('user_model');
}
public function index()
{
if(($this->session->userdata('user_name')!=""))
{
$this->welcome();
}
else{
$data['title']= 'Home';
$this->load->view('header_view',$data);
$this->load->view("registration_view.php", $data);
$this->load->view('footer_view',$data);
}
}
public function welcome()
{
$data['title']= 'Welcome';
$this->load->view('header_view',$data);
$this->load->view('welcome_view.php', $data);
$this->load->view('footer_view',$data);
}
public function login()
{
$email=$this->input->post('email');
$password=md5($this->input->post('pass'));
$result=$this->user_model->login($email,$password);
if($result) $this->welcome();
else $this->index();
}
查看:
<div id="content">
<div class="signup_wrap">
<div class="signin_form">
<?php echo form_open("user/login"); ?>
<label for="email">Email:</label>
<input type="text" id="email" name="email" value="" />
<label for="password">Password:</label>
<input type="password" id="pass" name="pass" value="" />
<input type="submit" class="" value="Sign in" />
答案 0 :(得分:1)
用户如何注册?您正在检查user_name会话变量,以查看它是否为空白而不是电子邮件,这是实际输入的内容,以显示欢迎屏幕。电子邮件和密码可以在您的数据库中完全填写,但由于您在条件中检查用户名称:
if(($this->session->userdata('user_name')!=""))
如果它是空白的,你会看到你的索引() 如果您坚持使用此方法,请确保填充用户表中的用户名列。或者,请使用此条件中的电子邮件列,因为他们使用电子邮件地址登录而不是用户名(意味着使用单个名称而不是电子邮件地址),因此我建议您使用此实施方案。
if(($this->session->userdata('user_email')!=""))
此外,您还可以检查您的logged_in会话变量,这就是它的用途。仍在查看代码以查找其他问题,但这些问题对我来说是潜在的问题区域。
您的更多信息肯定会有所帮助。您是否已倾销会话数据或行数据以查看实际返回的内容? email = 0没有意义