2012-05-24 2 views
0

활성화 된 사용자가 로그인 할 수 있지만 활성화되지 않은 사용자가 로그인 할 수없는 로그인을 만들었습니다. 문제는 사용자가 로그인 할 때 플래시 메시지가 출력되지 않습니다. 비활성화 된 계정으로 로그인을 시도하므로 사용자는 로그인 페이지에서 페이지가 계속 새로 고침되는 이유를 알 수 없습니다.cakephp 플래시 오류가 작동하지 않습니다.

을 heres 내 로그인 기능 나는를 havent

if ($this->request->is('post')){ 
    if ($this->request->data['User']['password'] == 'qazwsx'){ 
    if ($this->Auth->login()){ 
    $username = $this->request->data['User']['username']; 
    if (0 === $this->User->find('count',array('conditions'=>array('activated'=>1,'username'=> $username)))) { 
     $this->Session->setFlash('Sorry, your account is not validated yet.'); 
     $this->redirect($this->referer()); 
    } 

     $this->Auth->user('id'); 
     $this->redirect($this->Auth->redirect('eboxs/home')); 
     } 
    } 
    else { 

     $this->Session->setFlash('Username or password is incorrect'); 
    } 
    }else{ 
    $this->Session->setFlash('Welcome, please login'); 
    } 


} 

지금까지 플래시 메시지를 내보기 원인을 포함 난 당신이하고있는

+0

귀하의 논리가 확실히 작동합니까? 'echo 'working'을해라; 나가기 전에 계정을 비활성화하고 로그인하십시오. 사용자가 실제로 출력 한 페이지를 확인하십시오. ('$ this-> referer()'를 사용하고 있습니다.) – Ross

+0

일을 할 때 새로운 페이지로 가게됩니다. – user1393064

+0

또한 이것을 넣으려고했습니다. 리퍼러 코드 ('this is a test'); 똑같은 일이 발생했습니다. – user1393064

답변

0

이상한위한 인증 방법을 호출했다 havent 한. 당신이 이미 의견에 들었다처럼 사용자가 (> 리디렉션 $ this-)을 재 위치에 관계없이

는 해당 뷰에서

<?php echo $this->Session->flash(); ?> 

가 확인합니다.

또한이 방법을 사용하면 사용자가 로그인됩니다. 플래시 메시지를 표시하거나 리디렉션하기 전에 해당 사용자를 다시 수동으로 로그 아웃해야합니다.

또한 바로 쓸 수있다 : 이것은 당신에게 몇 줄의 코드를 절약 할 수

<?php 
    ... 
    $this->Auth->scope = array('User.activated' => 1); 

    if ($this->Auth->login()) { 
    // logged-in logic 
    } else { 
    // not logged-in logic 
    } 
?> 

.

관련 문제