2013-05-21 18 views
0

嗨,即時通訊用戶教程上的問題... 當我在登錄表單中輸入用戶名和密碼時,它會返回未驗證狀態。我不知道發生了什麼事。下面的代碼創建用戶MVC codeigniter tuts教程

型號:user.php的

<?php 

    class User extends CI_Model 
    {  

     // Create a user 
    function create_user($data){ 
     $this->db->insert('users',$data); 
    } 

    // Login 
    function login($username,$password){ 
     $where=array(
      'username'=>$username, 
      'password'=>$password); 
     $this->db->select()->from('users')->where($where); 
     $query=$this->db->get(); 
     return $query->first_row('array'); 
    } 
} 

控制器:users.php

<?php 

class Users extends CI_Controller 
{  

    // Login Function 
    function login(){ 
     $data['error']=0; 
     if ($_POST){ 
      $this->load->model('user'); 
      $username=$this->input->post('username',true); 
      $password=$this->input->post('password',true); 
      $user=$this->user->login($username,$password); 
      if(!$user){ 
       $data['error']=1; 
      } else { 
       $this->session->set_userdata('userID',$user['userID']); 
       $this->session->set_userdata('user_type',$user['user_type']); 
       redirect(base_url().'index.php/posts/'); 
      } 
     } 
     $this->template->load('layout/template', 'login', $data); 
    } 

    // Logout Function 
    function logout(){ 
     $this->session->sess_destroy(); 
     redirect (base_url()).'index.php/posts/'; 
    } 

} 

查看:login.php中

<h2>Login</h2> 
<div class="row"> 
    <div class="span12"> 
    <?php if($error==1){ ?> 
    <p class="alert alert-error "> 
      Username/Password did not match... 
    </p> 
    <?php } ?> 

    <p> 

     <form action="<?=base_url()?>index.php/users/login" method="post"> 
     <p><input class="span3" name="username" type="text" placeholder="Username"></p> 
     <p><input class="span3" name="password" type="password" placeholder="Password"></p> 

     <p><button class="btn btn-primary" type="submit">Login</button></p> 
     </form> 

    </p> 
    </div> 
</div> 

伊夫穿過了這徹底,但不能找到任何東西...

任何幫助或信息將不勝感激,但請溫柔IM新手哈哈......

克里斯

回答

0

的控制器;

嘗試這一行

if(count($_POST[]) > 0) { 

if($this->input->server('REQUEST_METHOD') === 'POST') { 

,而不是這一行

if ($_POST){ 

的模型;

// Login 
function login($username,$password){ 
    $where=array(
     'username'=>$username, 
     'password'=>$password); 
    $query = $this->db->get_where('users',$where); 
    return $query->first_row('array'); 
} 

爲了以防萬一,不要在不加密的情況下存儲密碼!

+0

這工作一個治療:)非常感謝... – Chris

+0

你可以確認點擊「接受爲答案」 – rcpayan