2012-01-23 21 views
5

Tengo la clase para restablecer una contraseña de usuario. Pero el código es siempre me da un error:Llamada a la función no definida en Codeigniter

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

Aquí está mi código:

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; 
      } 
     } 
    } 
} 

¿Cómo hago el método newRandomPwd disponibles así que no es indefinido?

Respuesta

20

newRandomPwd() no es una función global sino un método de objeto, debe usar $this.

Cambio $newPwd = newRandomPwd(); a $newPwd = $this->newRandomPwd();

+0

Soy nuevo en MVC .. gracias por su ayuda. ¡Ahora funciona! – softboxkid

+0

+1 Gracias por recordarme acerca de global y objeto – Anthony

Cuestiones relacionadas