2012-06-26 2 views
1

세션 도우미와 쿠키 도우미를 모두 실행할 수 있습니까? 왜냐하면 나는 노력하고있어, 나는 내 삶을 위해 쿠키를 만들 수 없다. 어떤 방법을 사용하든 CI의 문서를 편지로 가져 와서 그것을 시도하거나 또는 PHP로만 쿠키를 사용하려고 시도한다. 어느 쪽이든 쿠키를 설정하면 안됩니다. codeigniter 세션 도우미와 결합 된 쿠키 도우미

내가 좋아하는 그 (것)들을 설정하는 것을 시도했다 :

$this->input-set_cookie('AutoRemember', $mID.'-'.$hashbrown, $shortlife); 
and 
setcookie('AutoRemember', $mID.'-'.$hashbrown, $shortlife); 

나는 쿠키 도우미가 자동으로 세션 하나 인 것처럼로드

echo $this->input->cookie('AutoRemember'); 
and 
echo $_COOKIE['AutoRemember']; 

처럼 그들과 함께 작업하는 것을 시도했다, 그래서 그들은 로드됩니다. 세션 도우미는 매력처럼 작동하지만 쿠키에는 두통이 있습니다. 내가하고 싶은 일은 쿠키를 설정하여 내 사이트에서 "기억하기"기능을 수행 할 수 있고 5 분짜리 거래가 무엇인지 알려주는 데 몇 시간이 걸렸습니다. 뷰에서 픽업 할 수 있도록 뷰를 가져 오거나 컨트롤러에서 설정하고 아무것도 표시하지 않습니다.

Chrome과 Firefox 모두에서 브라우저 문제가 아닌 것처럼 보이며 FireFox는 쿠키가 어디에도 저장되지 않는 것 같습니다.

그래서 세션과 쿠키를 모두 사용하여 쿠키를 설정하거나 쿠키를 설정하려고 할 때 codeigniter 가비지입니다.

답변

1

Ellis Labs에서 CI를 사용하는 응용 프로그램 인 Expression Engine 코드를 보면 PHP의 setcookie 함수가 set_cookie 함수에서 호출되므로이 방법을 사용하는 것이 좋습니다.

쿠키 도우미가 세션 라이브러리와 함께 실행되는 데 문제가 없어 보이지 않는 것처럼 보입니다. 세션 클래스가 쿠키 도우미 (코드 CI를 다시 사용하는 방법) 대신 직접 setcookie을 호출한다는 사실에 주목할 필요가 있습니다.

일반적으로 PHP 함수 setcookie을 호출하면 CI 항목을 무시하고 어떤 작업이든 상관 없으므로 작동하지 않는 경우 다른 작업이 진행되고있을 수 있습니다. 가장 좋은 방법은 아마도 setcookie으로 시작하여 그 작업을 시도하는 것입니다.

setcookie에서 반환 값을 확인하십시오. false 출력이 이미 시작 되었기 때문에 반환 값이 작동하지 않는지 확인하십시오. 당신도 CI 쿠키 도우미를 사용하려고하는 것과 같은 문제 일 수 있습니다.

+0

나는 set_cookie/setcookie를 호출하기 전에 어디에서든지 출력하고 있다고 생각하지 않는다. 사실 후에 echo 문을 사용하지만, 내가 의심 스럽다면, 전에 theres 출력 쿠키/세션, 일반적으로 미리 출력이 있다면 헤더를 보낸다. – chris

+0

처음에는 가장 쉬운 방법은'setcookie'의 결과를 확인하는 것입니다, if (! setcookie (...)) {// 출력이 다른 곳에서 시작되어야 함}' – quickshiftin