2013-10-25 2 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; 
      } 
    } 
    } 

но показывает ошибку: -

Фатальная ошибка: Вызов функции члена Validate() на не-объект в этой строке: -

$ queryResult = $ this-> logins- > Validate ($ имя пользователя, пароль $);

ответ

0

Вы не загружая класс "логинов"

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

Loaded это $ this-> load-> модель ('Логины'); в контроллере – 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