내가

2009-08-20 6 views
0

여기 컨트롤러 기능 레지스터() 여기내가

public function register() 
{ 
     $userdata = array(); 
     $formdata = array(
      'uname' => '', 
      'password' => '', 
      'email' => '', 
      'fname' => '', 
      'lname' => '' 
     ); 

     // copy the form as errors 
     $errors = $formdata; 

     // process data if form is submitted 
     if (isset($_POST['submitted'])) 
     { 
      // initialize validation library 
      $post = new Validation($_POST); 

      // add filters 
      $post->pre_filter('trim', 'uname', 'fname', 'lname'); 

      // set validation rules 
      $post->add_rules('uname', 'required', 'alpha_numeric'); 
      $post->add_rules('password', 'required', 'length[6, 12]'); 
      $post->add_rules('email', 'required', 'email'); 
      $post->add_rules('fname', 'required', 'alpha'); 
      $post->add_rules('lname', 'required', 'alpha'); 
      $post->add_callbacks('uname', array($this, ' _username_exists')); 

      if($post->validate()) 
      { 
       $userdata = array(
        'username' => $_POST['uname'], 
        'email' => $_POST['email'], 
        'password' => $_POST['password'], 
        'firstname' => $_POST['fname'], 
        'lastname' => $_POST['lname'] 
       ); 

       $this->user->register($userdata); 
       // url::redirect('test/register_success'); 
      } 
      // show form with validation errors 
      else 
      { 
       // repopulate form fields 
       $formdata = arr::overwrite($formdata, $post->as_array()); 

       // populate the error fields 
       $errors = arr::overwrite($errors, $post->errors('register_error_messages')); 
      } 
     } 

     // show form 
     $view = new View('register'); 
     $view->form = $formdata; 
     $view->errors = $errors; 
     $view->render(true); 
    } 

의 콜백 함수를 사용할 때 왜

public function _username_exists(Validation $post) 
    { 
     // if add_rules validation found any errors, exit 
     if (array_key_exists('uname', $post->errors())) return; 

     $result = $this->user->check_username_exists($username); 
     if (!$result) 
     { 
      //add error to validation object 
      $post->add_error('uname', 'username_exists'); 
     } 
    } 

그것은 완벽하게 작동합니다 콜백 함수에게 내가 현재 사용하고 페이지에 404있어 무엇입니까 콜백 함수에 대한 호출을 주석 처리하면 좋음

+0

아마 "내가 의견을 말하면?" –

답변

1

add_callback 메소드의 메서드 이름 문자열에 공백이 있습니다.

$post->add_callbacks('uname', array($this, ' _username_exists')); 

$post->add_callbacks('uname', array($this, '_username_exists')); 

내가이 일을 해결할 생각해야한다.