2012-08-25 3 views
1

나는 데이터를 PHP에 저장하는 방법을 안다. 그러나이 방법은 PHP에서 긴 배열을 저장할 때 작동하지 않습니다. 해당 배열에는 약 3000 개의 값 (82382 문자)이 있습니다.긴 배열을 쿠키에 저장하기

나는이 일을하고있다 :

$encoded_db_data = base64_encode(serialize($query_result)); 
setcookie("db_select_result", '$encoded_db_data'); 

하지만 db_select_result 빈 (값)를 인쇄하지 않습니다. 이 문제를 어떻게 해결할 수 있습니까?

+2

[RFC 2965 §5.3] (http://tools.ietf.org/html/rfc2965#section-5.3)은 브라우저가 최대 4KB의 쿠키를 지원할 것을 권장합니다. 대부분의 브라우저는 그 이상을 지원하지 않습니다. 따라서 귀하의 데이터는 쿠키에 맞지 않습니다 (그러나 실제로 이러한 데이터를 클라이언트에 저장하고 네트워크를 통해 전송하는 것이 좋습니까?). 아마 당신은 PHP의 [session storage] (http://php.net/manual/en/book.session.php)의 사용을 고려해야하는데, 이는 서버 측에서 유지 관리됩니다. 또는 세션 이상으로 지속성이 필요하고 질문에 [tag : mysql] 태그가 있다고 가정하면 데이터베이스에 데이터를 저장 하시겠습니까? – eggyal

답변

1

사용자 에이전트는 수신 된 쿠키 전체를 무시할 수 있습니다 (MAY). 예를 들어 의 경우 사용자 에이전트는 "타사"응답에서 쿠키 수신 을 차단하거나 사용자 에이전트가 어떤 크기를 초과하는 쿠키를 저장하지 않을 수도 있습니다. 에서

:

1.Split 배열의 데이터를 하나 개 이상의 쿠키에 넣어 : http://www.faqs.org/rfcs/rfc6265.html

다음 옵션을 고려하십시오.

구석 구석 sessions

(쿠키와는 달리 그들은 "짧은 인생"가) http://www.php.net/manual/en/session.examples.basic.php]

3.Store 그 데이터를 Database에 "고유 키"로 입력 한 다음 고유 키가있는 쿠키를 설정하면 데이터베이스에서 가져올 데이터를 식별 할 수 있습니다.

4. 어레이에서 데이터를 덜 사용하고 쿠키에 넣으려고하십시오.

관련 문제