Re: [請益] 關於php讀取cookie的問題
※ 引述《misatocat (天使級廢材!)》之銘言:
: srand((double)microtime()*1000000); //亂數的產生
: $randvalue = rand();
: setcookie ("id", $randvalue,time()+365*24*60*60);
: 這邊是我cookie產生的機制,在最後一行,我的cookie沒什麼限制
: 之後,我在同一台主機兩個不同的帳號放置了網頁和執行
: 也就是 http://XXX/~a/cookie.php
: http://XXX/~b/cookie.php
: 理所當然 會產生/~a 名為"id"的cookie
: /~b 名為"id"的cookie
: 我想請問的是 如果我在同一台主機不同帳號想讀取上列特定的cookie可行嗎?
: 像是 /~c/loading.php 這支程式想去讀取/~b/cookie.php所產生的cookie
: 還蠻煩腦的,先謝謝各位的解答
首先要了解的是,cookie資料是儲存在瀏覽器端(有設定到期時間的,會存在
使用者的硬碟裡,沒有設定到期時間的,就只存在使用者的記憶體中,瀏覽器
關閉就會消失),而不是存在伺服器端。程式讀不讀得到某個cookie資料,
要看瀏覽器有沒有傳送這項資料給伺服器,瀏覽器不傳送過來,程式在伺服器端
什麼也找不到。
而瀏覽器在向伺服器請求頁面的時候,會看幾項條件來決定是否要一併傳送某些
cookie資料給伺服器,其中一項資料就是cookie的網域。瀏覽器不會將A網域的
cookie傳送給B網域(Yahoo的程式讀取不到eBay傳給我的cookie,要是讀得到
那可就天下大亂了)。然而如果兩個cookie的網域名稱相同,瀏覽器就會傳送給
伺服器。因此依照你的狀況,是可以讓/~c/loading.php讀取得到/~b/cookie.php
所建立的cookie,只要在/~b/cookie.php傳送cookie的時候,注意兩件事情:
1.cookie的網域(domain)設定為兩個程式共有的網域名稱。
2.cookie的路徑(path)設定為/。不這樣設定的話,/~a/路徑下的程式讀取不到
/~b/路徑的程式建立的cookie。
至於如何設定cookie的網域與路徑,請找php使用手冊。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.132.153.37
推
03/12 16:42, , 1F
03/12 16:42, 1F
推
03/13 19:41, , 2F
03/13 19:41, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
PHP 近期熱門文章
PTT數位生活區 即時熱門文章