2013-12-09 100 views
-2

我儘量去實現簡單的登錄應用程序,我得到這個笨錯誤,但是當我插入的電子郵件和密碼登錄形式,它以相同的形式作出迴應,我無法登錄笨簡單登錄錯誤

這是我的模型功能:

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

您確定密碼未加密? – sulmanpucit

+0

會發生什麼?你嘗試了什麼,結果如何?當你迴應新添加的變量等時會發生什麼? – James

+0

當我輸入電子郵件和密碼它迴應一個明確的形式,並不能直接到其他功能,我發現mySql數據庫加密爲電子郵件= 0和密碼= 9193ce – user3046785

回答

1

用戶註冊如何?您正在檢查user_name會話變量以查看它是否爲空,而不是電子郵件,這是實際輸入的內容,以顯示歡迎屏幕。電子郵件和密碼,可以在你的數據庫完全填充,但因爲你正在檢查的用戶名稱,而不是在您的條件:

if(($this->session->userdata('user_name')!="")) 

如果出來的空白,你會看到你的索引() 如果您堅持使用此方法,請確保填充用戶表中的用戶名列。或者說,在此條件使用電子郵件,而不是列,whcih給您的實現,我會建議,因爲他們是一個電子郵件地址,而不是用戶名登錄(這意味着一個單一的名稱,而不是電子郵件地址)

if(($this->session->userdata('user_email')!="")) 

另外,您也可以檢查您的logged_in會話變量,這就是它的用途。仍然會通過您的代碼來查找其他問題,但那些問題會作爲潛在的問題區域提供給我。

更多關於您的信息肯定會對您有所幫助。你是否已經拋出會話數據或行數據來查看實際返回的內容?電子郵件= 0沒有意義

+0

謝謝你我的建議,但我仍然得到了同樣的問題 。 – user3046785