0

로그인 기능을 만들었습니다. 모든 것이 잘 작동합니다. 유일한 문제는 사용자 컨트롤러의 세션과 사용자의보기에 액세스 할 수 있다는 것입니다.cake php에서 세션을 읽을 수 없습니다

다른 컨트롤러에서 사용자 세션에 액세스하려고하면 정의되지 않은 것으로 표시됩니다.

아래는 내 로그인 기능 코드입니다.

if ($this->Auth->login()) { 
        $user_data = $this->Auth->user(); 
        $this->loadmodel('GeneralUser'); 
        $result = $this->GeneralUser->find('first',array('conditions' => array('user_id' => $user_data['id']))); 
        $user_data_complete = array_merge($user_data,$result['GeneralUser']); 
        $this->Session->write('user',$user_data_complete); 
        $this->redirect('/dashboard/dashboard/'); 
        $this->Session->setFlash('You are successfully logged in'); 
        return $this->redirect($this->Auth->redirectUrl()); 
       } 

사용자가 성공적으로 로그인하여 인증 사용자의 세션에 액세스 할 수없는 대시 보드 컨트롤러로 리디렉션됩니다. users/myaccount로 돌아 가면 세션에 액세스 할 수 있습니다.

이상하게도 다른 컨트롤러의 사용자 세션에 액세스 할 수없는 이유는 무엇입니까?

답변

-1

문제가 발생했습니다. 정상적인 PHP session_start()를 사용하고있었습니다.

+1

그것을 할 수있는 올바른 방법이되지 않습니다 :

이 문서를 읽는 것은 내 최고의 조언이다. U는이를 위해 Session helper & component를 사용할 수 있습니다. –

0

session_start() 또는 GLOBALS를 사용하면 안되며, PHP 프레임 워크를 사용할 필요가 없다면 GLOBALS를 사용하지 않아야합니다. 항상 규칙을 고수하고 스파게티 코드를 피하십시오.

컨트롤러에서 세션 값을 읽으려면보기에서 세션 값을 읽으려면 세션 구성 요소를 사용하고 세션 도우미를 사용하십시오. http://book.cakephp.org/2.0/en/development/sessions.html