2016-06-09 5 views
-1

저는 CakePHP를 처음 사용하고 페이지 제출시 (admin) 사용자에게 비밀번호를 다시 입력하도록 요구하는 요구 사항이 있습니다. 유효성 검사를 추가해야하는 페이지는 하위 사용자의 정보를 수정하기위한 것입니다. Stack Overflow 및 다른 포럼에서 솔루션을 찾으려고했지만 행운이 없습니다.CakePHP - 페이지에 비밀번호 재 입력

여기에 자세한 내용은 다음과 같습니다

우리는, "사용" "사용 안함"과 사용자 테이블에서 자신의 상태를 변경하여 하위 사용자를 "삭제"고 edit.ctp 3 개 버튼이 있습니다.

echo $this->Form->button('Enable', array('onclick'=> 'change_status(1);')); 

      echo $this->Form->button('Disable', array('onclick'=> 'change_status(0);')); 

      echo $this->Form->button('Delete', array('onclick'=> 'change_status(2);')); 

사용자 테이블의 상태 필드에 바인딩되는 숨겨진 텍스트 필드가 있습니다. 1 (사용 가능), 0 (사용 불가능) 및 2 (삭제됨)의 3 가지 값을 가질 수 있습니다. 추신 : 이러한 "상태"에 의존하는 특정 이유로 사용자의 기록을 삭제할 수 없습니다. 이 필드는 사용자가

<script type="text/javascript"> 
      function change_status(status){ 
        document.getElementById("status_id").value = status; 
      } 
     </script> 

지금, 우리는 그들이 3 개 버튼 중 하나를 클릭하면 암호를 다시 입력하라는 메시지를 표시 할 필요가 자바 스크립트 함수 3 개 버튼

echo $this->Form->hidden('user.status', array('label' => false, 'type' => 'text' , 'value'=> $user["User"]["status"], 'id' => 'status_id')); 

중 하나를 클릭 할 때 업데이트됩니다. 그리고 암호가 로그인 암호와 일치하지 않는 경우, 작업을 수행 할 수 없습니다.

+1

특정 (특정) 코드를 표시하고 stackoverflow에 대한 주제와 관련하여 특정 코드 관련 질문을해야합니다. 또한 질문 한 질문은 (개념적으로) CakePHP와 관련이 없다는 점에 유의하십시오. – AD7six

+1

답장을 보내 주셔서 감사합니다. 나는 그 질문을 편집했다. – mnh

답변

0

데이터베이스에 사용자 테이블이 있다고 가정합니다. 그렇지 않으면 사용자 자신을 수정할 수 있습니다. 사용자 컨트롤러, 사용자 모델에서

public function checkPassword($userid,$password) 
{ 
    $hashed_pwd = $this->User->passwordHash($password); // call passwordHash function in User.php model 
    $condition = array('User.id'=>$userid,'User.password'=>$hashed_pwd); 

    if($this->User->hasAny($condition)) // check if password with that userid exists in users table 
    { 
     $output['status'] = 1; // give access 
    } else { 
     $output['status'] = 0 
    } 

    $this->set('output'=>$output); 

} 

,보기 당신이 컨트롤러로 작성 checkpassword를 기능에 의해 주어진 반응을 확인할 수 있습니다에서

public function passwordHash($password) { 
    return AuthComponent::password($password); 

} 

합니다.

+0

필자는이 함수를 호출하려고했지만 Missing Parameter 2의 오류가 발생했습니다. 첫 번째 매개 변수는 전달되었습니다 (함수 checkPassword에서 화면에 인쇄 할 수 있지만 두 번째 매개 변수는 전달되지 않습니다). $ parameters = $ userId. '/'. $ userPassword; \t \t $ result = $ this-> requestAction ('/ users/checkPassword/'.$ parameters); Warning (2) : UsersController :: checkPassword() [APP/controllers/users_controller.php, 118 행]의 인수 2가 누락되었습니다. – mnh

+0

인 경우 checkPassword 함수에서 두 번째 매개 변수를 제거하고 암호를 무언가로 사용하십시오 like : $ password = $ this-> request-> data [ 'User'] [ 'password']; // 양식 암호에 할당 된 $ password, 해당 기능의 . –

+0

감사합니다! 나 해보자 – mnh

관련 문제