2016-09-06 1 views
0

사용자를 처음 기억하고 다음 번에 다시 로그인 할 필요가없는 사용자를 기억하는 페이지가 있습니다.쿠키 두 번의 세 페이지 새로 고침 후 만료되기

나는 이것을 달성하기 위해 내 필요에 따라 다양한 기능을 포함하는 인증 클래스를 만들었습니다.

Howvever, 난 내 콘솔에서 쿠키를 볼 때, 나는 다양한 화면을 제공 할 것입니다

(하이퍼 링크 근처 흰색 아이콘 현재)이 같은 쿠키 헤더에서 볼 때 내가 만든 하나를 찾을 수 없습니다 같은 것을 제공하는 샷. 이것은 내가 쿠키 참조 만든 직후 인

enter image description here

동일한 쿠키 값은 콘솔 본 아니지만 위에 존재한다.

enter image description here

이 사람은 만료되지해야 today.It에서 30 일 쿠키의 만료 시간을 보여 주지만, 페이지 새로 고침, 그냥 사라진다.

enter image description here

그것은 단지 하나 또는 두 개의 페이지가 새로 고쳐 후,이 쿠키가 만료되었다는 것을 명확하게 볼입니다입니다.

저는이 기괴한 행동에 완전히 당황하고 있습니다.

public final function on_log($user,$user_name){ 
$token=$this->generate_random_token($user); 
$this->store_token_for_user($user,$token); 
$cookie = $user . ':' . $token; 
$mac = hash_hmac('sha256', $cookie, $this->key); 
$cookie .= ':' . $mac.':'.$user_name; 
setcookie('_ajh_food_quo', $cookie,time() + (30 *24 * 60 * 60));//user cookie 
//$this->logUserIn($user,$user_name); 
} 

위의 기능은 쿠키를 설정합니다.

아무도 나에게 설명 할 수 없습니까, 내가 뭘 잘못하고 있니?

누군가가 더 많은 것을 필요로한다면 코멘트에서 물어보십시오, 나는 그에 맞게 내 질문을 업데이트 할 것입니다.

+0

@downvoter care to answer? –

+1

쿠키의 경로는'/ Google'입니다. 이것이 당신이 원하는지 아닌지 나는 모른다. 4 번째 파라미터를'setcookie'에 추가하지 않으면 경로는 다음과 같아야합니다 :'setcookie ('_ ajh_food_quo', $ cookie, time() + (30 * 24 * 60 * 60), '/')'이 방법은 사이트의 모든 경로에 대한 .. –

+0

@ DanielDudas 많이 고마워. 그게 효과가. 당신은 질문에 대답 할 수 :) –

답변

1

쿠키의 경로는 /Google입니다. setcookie('_ajh_food_quo', $cookie, time() + (30 *24 * 60 * 60), '/')

이 방법은 모든 것 :

setcookie/ 경로 (루트)

는 그래서이 같아야을 제 4 PARAM를 추가하여 웹 사이트의 모든 경로에 사용할 수있는 세션을 만들려면 사이트의 경로 ..