2012-01-23 2 views
5

У меня есть класс для сброса пароля пользователя. Но код всегда дает мне ошибку:Звонок на неопределенную функцию на Codeigniter

Fatal error: Call to undefined function newRandomPwd() in 
C:\AppServ\www\phonebook\application\controllers\reset.php 
on line 32 

Вот мой код:

class Reset extends CI_Controller{ 
    function index(){ 
     $this->load->view('reset_password'); 
    } 
    function newRandomPwd(){ 
     $length = 6; 
     $characters = 'ABCDEF12345GHIJK6789LMN$%@#&'; 
     $string = '';  

     for ($p = 0; $p < $length; $p++) { 
      $string .= $characters[mt_rand(0, strlen($characters))]; 
     } 
     return $string; 
    } 
    function resetPwd(){ 

     $newPwd = newRandomPwd();     //line 32, newRandomPwd() 
                //is undefined 

     $this->load->library('form_validation'); 
     $this->load->model('user_model'); 
     $getUser = $this->user_model->getUserLogin(); 
     if($getUser) 
     { 
      $this->user_model->resetPassword($newPwd); 
      return TRUE; 
     } else { 
      if($this->form_validation->run()==FALSE) 
      { 
       $this->form_validation->set_message('','invalid username'); 
       $this->index(); 
       return FALSE; 
      } 
     } 
    } 
} 

Как сделать метод newRandomPwd доступны, так что это не определено?

ответ

20

newRandomPwd() не является глобальной функцией, а является объектным методом, вы должны использовать $this.

Изменение $newPwd = newRandomPwd(); в $newPwd = $this->newRandomPwd();

+0

Я новичок в MVC .. спасибо за вашу помощь. Он работает сейчас! – softboxkid

+0

+1 Спасибо, что напомнили мне о глобальном и объекте – Anthony

Смежные вопросы