2012-10-16 3 views
0

이것은 초급 수준의 초급 질문 일 수 있습니다. 그러나 저는 PHP로 한 달이기 때문에 나와 함께하시기 바랍니다. WordPress 블로그에 쿠키를 설정하려고합니다. 쿠키는 URL로부터 값을받습니다. "http://www.xyz.com/?name=John"PHP 쿠키 값은 2 페이지로드 후에 만 ​​작동합니다

이 쿠키가 설정되는 방법입니다

function set_name_cookie() { 
    if (isset($_GET['name'])) { 
     $name = $_GET['name']; 
     setcookie("name", $name, time()+3600, "/", ".xyz.com", false); 
    } 
} 
add_action('init', 'set_name_cookie'); 

HTML + PHP는 :

<?php if(isset($_COOKIE['name'])) { 
     $name = $_COOKIE['name']; 
     echo $name; 
?> 
<a href="?name=John">John</a> 
<a href="?name=Smith">Smith</a> 

문제는 , "John"또는 "Smith"링크 중 하나를 클릭하면 페이지가로드되지만 이름은 표시되지 않습니다. 다시 울리려면 이름을 다시 새로 고쳐야합니다. 흐름에 약간의 문제가 있습니다. 도움?

답변

4

쿠키를 설정하면 해당 페이지로드에 $_COOKIE이 채워지지 않고 해당 변수는 브라우저에서 보내는로드에서로드됩니다. 이 문제를 해결하려면 setcookie 성명 뒤에 $_COOKIE['name'] = $name;을 설정하는 것이 좋지만 브라우저가 쿠키를 허용하고 실제로 쿠키를 설정하지 않는다고해서 스크립트에서 바로 사용할 수 있습니다.

+0

와우! 그것은 잘 작동합니다. 그러나 Chrome은 여전히 ​​오래된 이름을 가져옵니다. Chrome에서 쿠키가 작동하도록 새로 고쳐야합니다. Firefox에서 완벽하게 작동합니다. Chrome의 캐시가 작동 중입니다. – JMDee

관련 문제