2011-04-07 27 views
2

我是一個餅乾和類似的東西。從一個文件夾內的頁面設置一個cookie到整個域名

我需要從一個文件夾內的頁面設置一個cookie到整個域,如mydomain.com/folder/page.php。我必須這樣做之前,我已完成重定向到另一個頁面mydomain.com/another.php設置cookie。現在的事情是,我不應該重定向頁面,因爲一些數據來自表單和其他東西,所以我怎麼能做到這一點?

setcookie("name", $name, time()+31536000);將只爲folder中的頁面設置cookie,我嘗試setcookie("name", $name, time()+31536000,'/','mydomain.com');但它沒有奏效。

+1

只需刪除域名部分。我認爲它會起作用。 – mahadeb 2011-04-07 22:05:27

+0

這些命令中的任何一個都可以工作,您是否檢查了error.log中的錯誤? – HTDutchy 2011-04-07 22:05:30

回答

9

此代碼肯定工程:

setcookie("name", $value, time()+31536000,'/'); 

你要注意的是mydomain.comwww.mydomain.comsub.mydomain.com不同。

除此之外,請注意$value的值應該是一個字符串。

+0

感謝您的幫助。它真的有效。對不起,花了那麼多時間來接受它。你已經在4天前回復了。 – 2011-04-11 11:57:57

1

@SPL_Splinter:確保您在之前設置了cookie,任何輸出。因此,舉例來說:

<?php 
$name = 'Some name'; 

setcookie("name", $name, time() + 31536000, '/', '.mydomain.com'); 
if (isset($_COOKIE['name'])) 
{ 
    echo $_COOKIE['name']; 
} 
?> 

更新

http://php.net/manual/en/function.setcookie.php

該cookie可用的站點。爲了讓cookie在example.com的所有子域名(包括example.com本身)上可用,請將其設置爲「.example.com」。儘管一些瀏覽器會在沒有初始的情況下接受cookie,但»RFC 2109要求包含它。將域設置爲'www.example.com'或'.www.example.com'將使cookie僅在www子域中可用。

相關問題