3 回答
TA貢獻1784條經驗 獲得超7個贊
您的方法有幾個問題,您正在打印用戶名
$username = $this->session->userdata('logged_in');
echo $username;
但是您沒有在任何地方分配用戶名,因此要完成此操作,您可以在登錄類中進行一些選擇
class UserLogin extends CI_Model{
public function checkLogin($email, $password) {
$this->db->where('email', $email);
$this->db->where('password', $password);
$query = $this->db->get('users');
if($query->num_rows())
{
$user = $query->row_array();
print_r($user); die(); // remove die after testing
return $user;
}
return false;
}
比你能回聲:
$user = $this->session->userdata('logged_in');
echo $user['username'];
第二個問題是這種方式登錄用戶非常不安全,您可以對密碼進行md5或其他加密。IE:
$this->db->where('password', md5( $password));
或更好的用戶ion_auth library,默認情況下為您提供各種選項。
TA貢獻1993條經驗 獲得超6個贊
更改以下CheckLogin()類似然后檢查用戶數據
public function checkLogin($email, $password) {
$this->db->where('email', $email);
$this->db->where('password', $password);
$query = $this->db->get('users');
if($query->num_rows() == '1'){
$data = $query->row_array();
$this->session->set_userdata(array('name'=>$data['name'],'loggedin'=>'1'));
}
return $query->num_rows();
TA貢獻1998條經驗 獲得超6個贊
請嘗試更改模型
class UserLogin extends CI_Model
{
public function checkLogin($email, $password) {
$this->db->where('email', $email);
$this->db->where('password', $password);
return $this->db->get('users');
}
- 3 回答
- 0 關注
- 154 瀏覽
添加回答
舉報
