2011-08-09 6 views
0

아무도 아이디어가 없으므로 Cakephp의 쿠키가 기능 종료 후 자동으로 삭제되는 이유는 무엇입니까?Cakephp 쿠키가 항상 자동으로 삭제됩니다.

내가 다음으로, 기능 ABC 말을하자에 쿠키를 작성하려고 : 그 전에

$this->Cookie->write('referal', $ref); 

, 필터 전에 응용 프로그램 컨트롤러, 나는 다음과 같은 쿠키를 초기화 한 :

$this->Cookie->name = 'renttycoons'; 
$this->Cookie->time = 604800; // or '1 week' 
$this->Cookie->path = '/'; 
$this->Cookie->domain = 'rent.local'; 
$this->Cookie->key = 'qSI232qs*&sXOw!'; 

그러나 일단 기능 실행이 끝나면 쿠키는 비어 있습니다. abc 함수가 끝나기 전에 쿠키를 읽으려고했을 때, 거기에있었습니다. 어쨌든 쿠키 삭제 방법이 없습니다.

+2

어디에서 쿠키를 읽으려고합니까? –

+0

예, 위의 쿠키를 작성하는 기능을 수행 한 후 그 아래에 다른 기능으로 리디렉션을 넣고 그 기능이 쿠키를 읽습니다. – hudarsono

답변

2

예, Cake의 쿠키 작동 방식 : 쿠키가 사용자의 브라우저에 있기 때문에 Cookie-> write()를 사용하면 쿠키에 직접 쓰지 않습니다. 뷰가 렌더링 될 때까지 작성한 쿠키가 전송됩니다. 따라서 리디렉션 할 때 (뷰가 렌더링되지 않아 쿠키가 보내지지 않고 플러시되지 않는다고 추측 할 수 있습니다) 새 요청에는 이전 쿠키 데이터가 있습니다.

케이크 응용 프로그램 내에서 일부 공유 데이터를 유지하고 각 방문자마다 고유하게하려면 SessionComponent를 사용하십시오. 쿠키와 거의 같은 모양입니다. $this->Session->write('referal', $ref);$this->Session->read('referal');

+0

정확히 말한대로. 감사! – hudarsono

관련 문제