2017-03-23 5 views
-1

지난 12 시간 동안 벽에 머리를 두드 리고 있었지만 틀린 점을 발견했습니다. 나는 쿠키를 설정하고 싶지만 기울어지고 싶다. 지금 이걸로 연방 준비를하는거야.PHP 쿠키가 설정되지 않았습니다

<!DOCTYPE html> 
<?php 
$cookie_name = "mysiterandomuser"; 
$cookie_value = "justanotheruser"; 
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); 
?> 

<html> 
<body> 

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

<p><strong>Note:</strong> You might have to reload the page to see the new value of the cookie.</p> 

</body> 
</html> 
+0

http://php.net/manual/en/function.setcookie.php는 '다른 헤더와 마찬가지로 스크립트의 출력 전에 쿠키를 보내야합니다 (이것은 프로토콜 제한 사항입니다). 따라서 출력하기 전에이 함수에 대한 호출을 수행해야합니다. 및 태그는 물론 공백도 포함됩니다. – fvu

+0

이것도 javascript와 mysql 태그가 붙은 이유는 무엇입니까? – edwin

+0

@fvu 나는 모든 가능한 방법을 시도했다. PHP 코드 아래에서 HTML 태그를 이동 시켰습니다. 내 컴퓨터 옆에 앉아서 지난 8 시간 정도의 문서를 읽었습니다. 쿠키를 설정하는 방법을 제안하는 웹 사이트를 읽으십시오. 나는 내가 w3schools에서 정확한 코드를 복사하여 붙여 넣기 전까지 뭔가 잘못하고 있다고 생각했습니다. 그것은 한 지점에서 자신의 사이트에서 작업하는 것을 보았습니다. – Francisco

답변

4

헤더/콘텐츠가 이미 전송 된 후에는 쿠키를 설정할 수 없습니다. 쿠키를 먼저 설정해야합니다. docs on PHP.net 당으로

<?php 
$cookie_name = "mysiterandomuser"; 
$cookie_value = "justanotheruser"; 
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); 
?> 
<!DOCTYPE html> 
<html> 
<body> 

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

<p><strong>Note:</strong> You might have to reload the page to see the new value of the cookie.</p> 

</body> 
</html> 
+0

나는 대답과 똑같이했다. 하지만 최악은 html 출력을 시작한 후에도 나에게 도움이되었다는 것입니다. – Zri

+0

@Rob M. 가능한 모든 방법을 시도했습니다. PHP 코드 아래에서 HTML 태그를 이동 시켰습니다. 내 컴퓨터 옆에 앉아서 지난 8 시간 정도의 문서를 읽었습니다. 쿠키를 설정하는 방법을 제안하는 웹 사이트를 읽으십시오. 나는 내가 w3schools에서 정확한 코드를 복사하여 붙여 넣기 전까지 뭔가 잘못하고 있다고 생각했습니다. 그것은 한 지점에서 자신의 사이트에서 작업하는 것을 보았습니다. – Francisco

1

...

쿠키는 쿠키를 볼 수 있어야한다 페이지의 로딩하기 전까지는 작동되지 않는다. 쿠키가 성공적으로 으로 설정되었는지 테스트하려면 쿠키 이 만료되기 전에 다음 로딩 페이지에서 쿠키를 확인하십시오.

변경이 ... 여기에

<?php 
$cookie_name = "mysiterandomuser"; 
$cookie_value = "justanotheruser"; 
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); 
?> 

... 이것에 대한

<?php 
if(!isset($_COOKIE[$cookie_name])) { 
$cookie_name = "mysiterandomuser"; 
$cookie_value = "justanotheruser"; 
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); 
} 
?> 

이유는 모든 페이지 뷰에 쿠키를 설정하는 것입니다.

내가 용서할 수는 있지만 브라우저에서 쿠키를 사용할 수 있습니까?

+0

방문한 후에 브라우저를 여러 번 닫았지만 아무 일도 일어나지 않습니다. 아직도 그 같은 일이 계속되고 있습니다. 모서리에, 즉, 크롬, 파이어 폭스를 시도했다. 나는이 문제를 해결할 필요가있다. 그러나 여기에 미치광이가된다. – Francisco

+0

godaddy는 이것과 관련이있다 ??? coz thats my host – Francisco

+0

@Francisco 답변을 업데이트했습니다. 그것이 당신을 위해 작동하는지보십시오. 기억하십시오, 당신은 페이지를 새로 고침해야합니다 –

관련 문제