2013-10-25 59 views
0

我有控制器文件: - 的login.php致命錯誤:調用一個成員函數在登錄驗證

class Login extends CI_Controller { 
    function __construct() { 
    parent::__construct(); 
    } 
    function success() { 
    $username = $this->input->post('username'); 
    $password = $this->input->post('password'); 
    $errorMsg =""; 
    $queryResult = $this->logins->validate($username,$password); 
    if($queryResult == TRUE) { 
     redirect ('home'); 
    } 
    else { 
     $errorMsg ="Invalid Username or Password"; 
     $this->load->view('login',$errorMsg); 
    } 
    } 
} 

視圖: - 的login.php

<script type="text/javascript"> 
     function validatelogin(){ 
      var x=document.forms["login"]["username"].value; 
      var y=document.forms["login"]["passwrd"].value; 
      if (x==null || x=="") 
      { 
       alert("First name must be filled out"); 
       return false; 
      } 
      if (y==null || y=="") 
      { 
       alert("Password field must be filled out"); 
       return false; 
      } 
      /*if(x!="monisha" && y!="monisha"){ 
       alert("Username and Password incorrect"); 
       return false; 
      }*/ 
      return true; 
     } 
    </script> 

HTML表單有: -

<form name="login" id="login" action="<?php echo base_url() ?>login/success" onsubmit="return validatelogin()" method="post"> 

模型文件logins.php是具有該功能,它描述功能驗證

class Logins extends CI_Model { 
     function __construct() 
     { 
      parent::__construct(); 
     } 
     function validate($username,$password){ 
      $this->db->select('username','password'); 
      $this->db->from('logins'); 
      $this->db->where('username', $username); 
      $query = $this->db->get('logins'); 
      if ($query->num_rows() > 0) { 
       foreach ($query->result() as $row) { 
        $passwrd = $row->password; 
        if($passwrd == $password) { 
         return TRUE; 
        } 
       } 
      } else { 
       return FALSE; 
      } 
    } 
    } 

,但示出該錯誤: -

致命錯誤:調用一個成員函數驗證()一個非對象在這一行: -

$ QueryResult中= $這 - > logins- >驗證($用戶名,密碼$);

回答

0

你是不是類加載 「登錄」

$this->load->library('Logins'); 
+0

加載此$這個 - >負載>模型( '登錄');在控制器構造函數 – Monisha

+1

哪裏?這不是在你張貼的代碼 – jmadsen

+0

抱歉.. function __construct(){ parent :: __ construct(); $ this-> load-> helper('url'); $ this-> load-> library('session'); $ this-> load-> model('Logins'); $ this-> load-> library('Logins'); } – Monisha

0

嘗試像這樣在你的模型

public function __construct() { 
     // Connecting Database 
     parent::__construct(); 
     $this->load->database(); 
    } 
0

請添加您的型號類別名稱爲配置\ autoload.php文件

$ autoload ['model'] = array('logins');

它對我很好,請試試看。

0

加載名爲模型登錄使用前

$this->load->model('logins', '', TRUE); 

或autoload.php

相關問題