2017-10-26 1 views
0

아주 간단한 질문입니다.내 쿠키가 링크 된 페이지에 표시되지 않는 이유는 무엇입니까?

<?php 
echo "ok ok "; 
echo $_COOKIE["testcookie"]; 
?> 

내 두 번째 페이지는 "확인 확인"메아리하지만이 쿠키를 표시하지 않습니다

<?php 
setcookie("testcookie", "i am value of cookie", 86400, '/'); 

?> 

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    <meta http-equiv="X-UA-Compatible" content="ie=edge"> 
    <title>Document</title> 
</head> 
<body> 

<a href="newpage.php">go to next</a> 
</body> 
</html> 

이 내 newpage.php입니다 :

내 index.php를합니다. 네트워크를 검사 한 결과 index.php에 "testcookie"쿠키가 있지만 링크를 클릭하면 newpage.php에 액세스 할 수 없습니다.

저는 MAMP를 사용하고 있습니다.

+0

설정되어 있는지 확인한 다음 "일단 값이 할당되면"다시로드하십시오. 쿠키는 설정 한 후에 만 ​​적용됩니다. 그렇게하지 않았습니다. –

+0

쿠키에 어떤 값을 저장합니까? – xander

+0

문서를 읽으십시오. http://php.net/manual/en/features.cookies.php –

답변

3

86400은 오래 전이었습니다.

쿠키가 즉시 만료됩니다.

documentation 참조 :

쿠키가 만료 시간입니다. 이것은 유닉스 타임 스탬프이므로 신기원 이후의 초 단위입니다. 즉, time() 함수와 만료되기 전의 초 수를 함께 설정하는 것이 가장 좋습니다. 또는 mktime()을 사용할 수도 있습니다. time() + 60 * 60 * 24 * 30은 쿠키가 30 일 후에 만료되도록 설정합니다. 0으로 설정하거나 생략하면 세션이 끝날 때 (브라우저가 닫힐 때) 쿠키가 만료됩니다.

+0

은 mktime()으로 변경되었습니다. time() + 60 * 60 * 24 * 30 그러나 여전히 쿠키가 표시되지 않습니다 (새로 고침 등). – Hyrule

+1

코드를 사용하면'time() + 86400'을 사용할 수 있습니다!? – xander

+0

@xander, ok ... that worked : O – Hyrule

관련 문제