2017-10-31 1 views
7

두 명의 사용자 데이터가 서로 다른 시간 초과/만료 시간을 가질 수 있습니까? 첫 번째 데이터 "param_1"이 1 일 만에 만료되고 "param_2"가 한 달 만료되었다고 가정 해 보겠습니다. CI 세션 라이브러리를 사용하여이를 수행하는 방법. "Tempdata"를 통해이 가능하다이codeigniter에서 세션 시간 초과를 차별화하십시오.

$this->session->set_userdata('param_1', 86400); // seconds in a day 
$this->session->set_userdata('param_2', 2592000); // seconds in a month 
+0

구체적인 문제를 명확히하거나 추가 세부 정보를 추가하여 필요한 것을 정확하게 강조하십시오. 현재 작성된 내용이므로 귀하가 원하는 내용을 정확하게 말하기는 어렵습니다. 이 질문에 대한 설명은 [How to Ask] (https://stackoverflow.com/help/how-to-ask) 페이지를 참조하십시오. – Tpojka

+0

아마도 도움이 될 것입니다. https://stackoverflow.com/questions/520237/how-do-i-expire-a-php-session-after-30-minutes/1270960#1270960 –

답변

7

같이 수 있습니다 뭔가 :

$this->session->tempdata($key, $value, $validForTime); 

그러나, 하나의 세션은 몇 시간에 아마 하루 이상 지속되지해야합니다. 어떤 변수가 그 이상 지속되는 것을 원하면, 세션은 절대적으로 잘못된 도구입니다.

+0

내 목표는 사용자가 로그인 세션이 만료되었거나 의도적으로 로그 아웃했거나 로그인하지 않았기 때문에 로그 아웃되었습니다. 그래서 나는 사건을 구별하기 위해 로그인 세션과는 별도로 하나의 아주 오래 지속되는 세션 변수를 만드는 아이디어를 가지고있다. 거기에서 적절한 메시지가 사용자에게 표시됩니다. 어떤 생각을 어떻게 할 것인가? 유망한 것으로 보이는 Tempdata는 단기 세션에만 적합하지만 보류 할 수있는 최대 값이 확실하지 않은 것 같습니다 – Va1iant

+1

그건 [XY 문제]입니다 (https://meta.stackexchange.com/a/66378)./204788). 당신이 갖고있는 생각은 실현 가능하지 않습니다. – Narf

+0

매우 간단합니다. 수동 로그 아웃시 다른 값을 세션에 저장하십시오. –

5

이것은 만료 날짜가 더 긴 일반 도메인과 다른 도메인의 클라이언트에 쿠키를 설정하고 세션 데이터 대신 확인하는 경우에만 가능합니다. 좀 더 실용적인면에서는 ajax .get을 페이지의 특정 URL에 사용하여 세션을 시작하지 않고 두 쿠키를 모두 확인합니다 (세션이 이미 만료되었으므로).

관련 문제