【发布时间】:2017-08-23 11:28:06
【问题描述】:
我目前正在设计一个带有 codeigniter 的登录/注册系统。当我输入错误的密码或用户名时,除了 Flash 数据 之外,一切似乎都正常。
这就是我想要实现的,如果用户输入了不正确的凭据,则会显示闪存数据。
这是我的控制器的代码:
<?php
//Extending the base controller
class Auth extends CI_Controller{
//calling the login view
public function login(){
//Only username and password credentials are needed here
$this->form_validation->set_rules('username','Username','required');//using form_validation library
$this->form_validation->set_rules('password','Password','required|min_length[5]');
if($this->form_validation->run() == TRUE){
$username = $_POST['username'];
$password = md5($_POST['password']);//password hashing
//Search for user in db
$this->db->select('*');//query
$this->db->from('users');
$this->db->where(array('username' =>$username, 'password' => $password));
$query = $this->db->get();//store in a var called query
$user = $query->row();
if($user->email){
//temp message
$this->session->set_flashdata("success","You are now logged in");
//session variables
$_SESSION['user_logged'] = TRUE;
$_SESSION['username'] = $user->username;
$_SESSION['email'] = $user->email;
$_SESSION['password'] = $user->email;
//redirect to their own profile page
redirect("user/profile", "refresh");
}else{
$this->session->set_flashdata("error","No account exists, why not register with us?");
redirect("auth/login", "refresh");
}
}
$this->load->view('login');
}
【问题讨论】:
-
能否也提供视图(代码),因为您需要在那里输出 Flash 消息。
-
请重新评估您的密码安全性。
MD5就是剪不下来
标签: php codeigniter login