2013-08-25 2 views
0

양식의 암호 필드에 대해 작동하도록 확인 암호를 얻으려고합니다. Validator 메서드를 살펴 보았고 완벽하게 작동하는 것 같습니다. 그러나 암호를 확인하려고 할 때마다 매번 오류 메시지가 나타나야합니다. 내 머리를 찰깍 소리가 나면 확인할 수 있습니다. 유효성 검사를하기 전에 해시되고 있기 때문입니다. 데이터베이스에 입력되기 전에 해쉬가 될 필요가 있기 때문에 어떻게해야할지 모르겠습니다. 어떤 아이디어? getSignUp 컨트롤러확인 된 암호와 해시 된 암호 비교 | Laravel 4

 public function getSignUp() { 
      $userdata = array(
       'email' => Input::get('email'), 
       'password' => Hash::make(Input::get('password')), 
       'confirm_password' => Hash::make(Input::get('confirm_password')), 
       'user_zip_code' => Input::get('user_zip_code')   
      ); 

      $rules = array(
       'email' => 'required|email|unique:users,email', 
       'password' => 'required|min:5', 
       'confirm_password' => 'required|same:password', 
       'user_zip_code' => 'required' 
      ); 

      $validation = Validator::make($userdata, $rules); 

      if($validation->fails()){ 
       return Redirect::to('signup')->withErrors($validation)->withInput(); 
      } 

      $user = new User($userdata); 
      $user->save(); 

      return Redirect::to('login'); 
    } 

더 이상 코드가 필요한 경우

은 알려주세요. 방금 가입 페이지의 블레이드 템플릿에 withErrors가 있습니다.

답변

3

유효성 검사기에 해시 된 비밀번호를 전달하지 마십시오. 저장하기 전에 해시하십시오.

public function getSignUp() { 
    $userdata = array(
     'email' => Input::get('email'), 
     'password' => Input::get('password'), 
     'confirm_password' => Input::get('confirm_password'), 
     'user_zip_code' => Input::get('user_zip_code')   
    ); 

    $rules = ... 

    $validation = Validator::make($userdata, $rules); 

    if($validation->fails()){ 
     return Redirect::to('signup')->withErrors($validation)->withInput(); 
    } 

    $userdata['password'] = Hash::make($userdata['password']); 

    $user = new User($userdata); 
    $user->save(); 

    return Redirect::to('login'); 
} 
+0

바보처럼 쉽게 ... 감사합니다! Silber! – Lynx

관련 문제