2010-01-11 7 views
5

쿠키 기반 세션 시스템을 통합하는 방법에 관한 모든 정보/링크가 신체에 있습니까? 나는 file/mysql을 사용했고, 현재 memcached를 사용하고있다. 나는 APC 세션을 갖고 놀고 싶었지만 쿠키를 사용한다고 생각했다. 단지 그것에 대해 많이 모른다.php : 쿠키 기반 세션

나는 내 자신의 세션 처리기 클래스를 작성해야겠습니까?

+0

잘 모르겠습니다. 세션 데이터를 쿠키에 저장한다는 의미입니까? 그거 좋은 생각이야? –

+0

쿠키에는 최대 4KB의 데이터 만 저장할 수 있습니다. 이것은 일반적으로 쿠키 기반 세션 저장을 볼 수없는 이유입니다.또한 많은 사용자가 쿠키를 완전히 해제하거나 브라우저 보안 정책으로 제한적인 액세스로 설정해야합니다. –

+1

@cballou : 일반적으로 오래된 세션은 쿠키도 사용합니다. 그들은 단지 SESSID를 저장하고 나머지 데이터는 서버에 저장됩니다. 쿠키가 비활성화되면 PHP는 SESSID를'GET' 매개 변수에 채워 넣을 것입니다. – mpen

답변

5

PHP 세션 데이터는 일반적으로 파일에 저장됩니다. 쿠키에 저장된 유일한 것은 세션 식별자입니다. 세션이 활성화되고 유효한 세션 쿠키가 발견되면 PHP는 사용자 세션 데이터를 파일에서 funnily SESSION이라는 수퍼 글로벌에로드합니다.

기본 세션은 텍스트가 브라우저로 전송되기 전에 호출 된 session_start();을 사용하여 시작됩니다. 간단한 배열 인덱싱을 사용하여 항목을 세션 객체에 추가하거나 세션 객체에서 제거합니다. 텍스트가 브라우저로 전송되기 전에

$_SESSION['favcolour'] = 'blue'; 

나중에 ...

$favcolour = $_SESSION['favcolour']; 

기본 쿠키 단지 세션 (NO 로컬 스토리지는)

set_cookie('favcolour','blue'[,other params]); 

에 전화를 만들 수 있습니다 그런 다음 쿠키 슈퍼 글로벌에서 검색합니다.

$favcolour = $_COOKIE['favcolour']; 

쿠키 만 세션을 수행하는 경우 session_start() 번으로 전화 할 필요가 없습니다.

옵션 [다른 PARAMS] 난 그 어떤 빛 일을 제안하고 지식을 확장 것, 더 진보하고 여기에 대해 http://www.php.net/manual/en/function.setcookie.php

세션은 매우 복잡한 논의가 될 수 있습니다 읽을 수 있습니다.

DC

당신이 이제까지 PHP의 세션 처리 코드를 재사용하기 위해

DC

PHP 세션

http://www.php.net/manual/en/book.session.php

에 대해 알고 싶었던 모든 당신은 그 session_set_save_handler 등을 사용하여 쓰기 처리기를 추가해야합니다 그 핸들러에서 아무 것도하지 마라. 브라우저에 출력 된 후에 호출되므로 브라우저에 아무 것도 보낼 수 없기 때문입니다.

브라우저에 비 헤더 데이터를 쓰려면 먼저 set_cookie 함수를 사용하고 $ _SESSION 배열의 내용을 (직렬화 및 암호화 후) 쿠키에 저장하십시오. 응용 프로그램이 시작되면 쿠키를 읽음으로써 그것을 직렬화 해제하고 $ _SESSION 배열에 넣을 수 있습니다.

내가 한 적이 없어서 어떻게해야할지 빨리 힌트를 얻었으니, 내 자신의 쿠키 코드를 모두 작성하는 것을 선호합니다. 몇 가지 잡아 당김이있을 수 있지만 몇 가지 테스트에서 잡아 당김을 찾아야합니다.

DC

+0

특히 사용자가 데이터를 변조 (또는 읽기)하기를 원하지 않는 경우에는 쿠키 만 사용하지 않을 것입니다. – mpen

+0

매우 바쁜 웹 사이트 파일 기반 세션의 경우 리소스가 너무 많이 필요합니다. 하지만 보안을 원한다면 파일을 읽을 수 있기 때문에 db를 사용합니다. – DeveloperChris

+2

세션 사용 방법을 알 필요가 없습니다. 나는 그것을 완전히 이해합니다. 쿠키 기반 세션 (쿠키의 식별자 저장소가 아님)은 서버 db/file/cache 조회의 수를 최소화하고 세션에 대한 모든 데이터를 암호화 된 쿠키에 저장하는 유효한 기술입니다. 나는 여기서 아무도 내가 무엇을 의미하는지 이해하지 못한다고 생각한다. – onassar