2011-04-22 75 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已經存在。