2011-11-25 45 views
0

我想訪問的子域名的cookies餅乾,如何訪問子域

在主域運作良好的餅乾,但不能能夠訪問子域的餅乾,我創建了兩個文件testing_1.php和testing_2.php,餅乾是通過testing_1.php是

$domain = '.localhost'; 
session_set_cookie_params(0, '/', $domain); 
session_start(); 

$_SESSION['name'] = 'Jogesh'; 
setcookie("f_name", "jogesh", 0, "/", "$domain"); 

if(isset($_COOKIE["f_name"])) 
    echo "Set Cookie on 1: " . $_COOKIE["f_name"]; 
else 
    var_dump(setcookie("f_name", "jogesh", 0, "/", "$domain")); 
在上面的代碼中我也嘗試訪問會話

設置,只是得到了會話ID,我想如果可能的話其他明智的訪問$_SESSION['name']的子域cookies

now the testing_ 2.PHP在這裏

session_start(); 

if(isset($_SESSION['name'])) 
    echo "Session Name: " . $_SESSION['name']; 
else 
    echo "Session not set!"; 

if(isset($_COOKIE["f_name"])) 
    echo "Cookie Name: " . $_COOKIE["f_name"]; 
else 
    echo "Cookie not set!"; 

兩個文件上localhost運作良好,但是當我試圖從demo.localhost訪問文件testing_2.php的不能訪問任何PLZ讓我知道我做了什麼樣的錯誤,,

回答

0

如果您是在www.example.com上創建它們,則無法從cdn.example.com中讀取它們。你必須在example.com創建它們。此外,您無法使用JavaScript和visa-verse閱讀PHP創建的Cookie。它也取決於瀏覽器。有tsk.tr的問題。您必須看到瀏覽器的列表http://mxr.mozilla.org/mozilla-central/source/netwerk/dns/effective_tld_names.dat?raw=1可能是因爲瀏覽器將localhostsubdomain.localhost視爲完全不同的域名。試試真實環境中的代碼或使用hosts文件。

+0

謝謝,但我用什麼是錯的?因爲我在本地主機上測試不在主服務器上,請讓我知道再次感謝'編輯:'我看到你說在真實環境中使用它們,但它爲什麼不在本地主機上工作?我的意思是餅乾 –

+0

瀏覽器的安全測量,以防止本地欺詐攻擊,我猜。如果可能,請嘗試使用demo.127.0.0.1的127.0.0.1。或者你可以問問http://forums.mozillazine.org/ – ilhan