2012-01-23 14 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を使用してください。

私はMVCに新しいです$newPwd = $this->newRandomPwd();

+0

に変更$newPwd = newRandomPwd();は...あなたの助けをありがとうございました。それは今働きます! – softboxkid

+0

+1グローバルとオブジェクトについて教えていただきありがとうございます – Anthony

関連する問題