PHP的setcookie函數可以設置域,但是只能在當前域內,如果出現多域可由如下辦法處理:
實現原理:
www.b.com/set_cookie.php 在b域名下設置a域名的cookie
- <script src="http://www.a.com/set_cookie.php"></script>
www.a.com/get_cookie.php 在a域名下獲取cookie
- print_r($_COOKIE);
www.a.com/set_cookie.php 在a域名下設置a域名的cookie
- header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');
- setcookie("test", "test value", time()+3600, "/");
實現過程:
訪問www.b.com/set_cookie.php,然后訪問www.a.com/get_cookie.php就可以獲取cookie
其實,我在chrome不用P3P頭也可以獲取到cookie,但是IE不行,加上P3P頭,IE也可以了。
P3P(Platform for Privacy Preferences)正是一種可以提供這種個人隱私保護策略,一般瀏覽器都支持P3P協議。P3P header允許跨域訪問隱私數據,從而可以跨域set-cookie成功