2012-06-02 3 views
0

나는이 같은 세션으로 사용자의 언어 선택을 저장하고있어 저장하는 방법 :사용자 언어

$this->session->set_userdata('language', $language); 

그리고 내가 세션 데이터에 따라 언어를 설정 (그리고 영어를 만들고있어, 등을 기본 언어).

if (!$language = $CI->session->userdata('language')) 
{ 
    $language = "english"; 
} 

$CI->config->set_item('language', $language); 

정상적으로 작동하지만 사용자가 선택한 언어는 약 만 지속됩니다. 2 시간 - 사용자가 언어를 다시 선택해야합니다. 따라서 문제는 세션 시간을 연장하여 만료되도록하는 방법 (또는 사용자가 브라우저 데이터를 지우는 경우에만 만료되도록 설정하는 방법)입니다. 내 웹 사이트에서 손님을 처리해야하기 때문에 데이터베이스에 사용자 선택 사항을 저장할 수 없습니다.

저는 CI의 설정에서 세션 시간을 연장 할 수 있다는 것을 알고 있습니다. 그러나 언어 선택의 경우에만 문제가 발생하고 계정 세션에는 문제가되지 않기를 바랍니다.

답변

1

동일한 세션이며 만료되거나 만료됩니다. 인증 부분이 만료 될 수는 없지만 언어 선택은 유효하지 않습니다. CI는 여러 세션을 쉽게 관리 할 수 ​​없으므로 하나의 수명이 짧은 세션 및 언어 기본 설정에서보다 긴 수명의 인증을 저장할 수 있습니다. 그대로 쿠키에 직접 언어 환경 설정을 저장하는 것이 더 쉬울 수도 있습니다. 각 요청에 대해 쿠키를 다시 설정해야한다는 점을 명심하십시오. 그렇지 않으면 사용자 활동시 자동으로 새로 고치지 않으며 사용자가 사이트를 적극적으로 사용하고 있어도 만료됩니다.

+0

쿠키에 대해서도 생각하고 있었지만,이 쿠키가 좋은지 확실하지 않았습니다. 그 유일한 길처럼 보입니다. – Cyclone

+0

글쎄, 당신은 또한 전체 2 차 세션을 스스로 구현할 수 있지만, 나에게는 잔인한 것처럼 보입니다. 쿠키는 이러한 목적에 잘 부합합니다. – lanzz

+0

자, 도와 줘서 고마워 .--). – Cyclone

관련 문제