2011-04-22 50 views
0

为什么PHP只有在刷新页面两次时才会获取cookie新值。 第一次运行页面时,php不会获取cookie值。php和javascript cookie

感谢

<script type="text/javascript"> 
var name = 'test1'; 
var value = '1234'; 
var expirydays = '1'; 
expiry = new Date(); 
expiry.setDate(expiry.getDate() + expirydays); 
document.cookie = name+"="+escape(value)+";expires="+expiry.toGMTString(); 
</script> 

<?php  
print_r($_COOKIE); 
?> 

回答

2

你感到困惑如何PHP和JavaScript的工作。

PHP首先在服务器端运行。

在PHP运行后,客户端在用户的浏览器中运行JavaScript很长时间。

您在JavaScript中设置的Cookie对于生成Javascript的PHP脚本将永远不可见:这太迟了。您将不得不重新加载页面。

但顺便提一句,即使通过PHP自己的setcookie()设置的值仅在页面重新加载后才可见,因为在脚本启动时会填充$_COOKIE变量。

0

PHP在服务器上运行,并在客户端上运行JavaScript。 PHP代码在JavaScript代码运行之前运行,所以第一次,PHP还没有cookie。它第二次工作,因为cookie已经存在。