2017-01-03 3 views
0

쿠키를 처음 접하는 것입니다. 나는 그것을 작동시키지 못했습니다. 그래서 저는 w3schools의 예를 그대로 복사하여 붙여 넣었습니다. "시도해!" 페이지를 자신의 웹 사이트에서 작동하지만 localhost에서 내 자신의 파일에서 코드를 실행하면 쿠키가 설정되지 않습니다. "쿠키 '라는 사용자가 설정되지 않았습니다."라는 메시지가 출력됩니다. 때마다.setcookie()가 쿠키를 설정하지 않습니다.

 $cookie_name = "user"; 
     $cookie_value = "John Doe"; 
     setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); 

     if(!isset($_COOKIE[$cookie_name])) { 
      echo "Cookie named '" . $cookie_name . "' is not set!"; 
     } else { 
      echo "Cookie '" . $cookie_name . "' is set!"; 
      echo "Value is: " . $_COOKIE[$cookie_name]; 
     } 

페이지를 리디렉션하지 않고 있습니다. 그냥 쿠키를 설정하지 않습니다. Chrome과 MAMP를 사용하고 있습니다. Chrome에서 쿠키를 사용할 수 있으며 php.ini에서도 쿠키가 사용됩니다. 파이어 폭스와 사파리에서도 실행 해 보았습니다. 제발 이해 좀 도와주세요

+0

'setcookie()'는'$ _COOKIE []'을 즉시 변경하지 않습니다. – mario

+0

setcookie 전에 파일에 다른 출력이 없다고 확신합니까? – swordbeta

답변

0

setcookie()은 나머지 HTTP 헤더와 함께 전송할 쿠키를 정의합니다. 다른 헤더와 마찬가지로 스크립트의 출력 전에 쿠키를 보내야합니다 (프로토콜 제한). 따라서 공백뿐만 아니라 태그를 포함하여 출력하기 전에이 함수를 호출해야합니다.

쿠키가 설정되면 다음 페이지로드시 $ _COOKIE 배열로 액세스 할 수 있습니다. 쿠키 값은 $ _REQUEST에 존재할 수도 있습니다.