php and javascript cookie

php and javascript cookie

本文关键字:cookie javascript and php      更新时间:2023-09-26

为什么PHP只有在刷新页面两次时才能获得cookie新值。当第一次运行page时,php没有获取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);
?> 

你把PHP和JavaScript的工作原理搞混了。

PHP首先在服务器端运行。

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

您在JavaScript中设置的cookie永远不会对生成JavaScript的PHP脚本可见:太晚了。您必须重新加载页面。

然而,顺便说一下,即使是通过PHP自己的setcookie()设置的值也只有在页面重新加载后才可见,因为$_COOKIE变量在脚本启动时填充。

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