[Web] Cookie 小觀念
2009年4月16日
問題
剛剛被問了一個 Cookie 的觀念,這邊簡單分享給大家。
先來看以下這個程式,請問它第一次執行時結果是什麼?
setcookie('test', 'abc'); var_dump($_COOKIE);
如果你回答的是空陣列的話,那就表示你瞭解 Cookie 的作用了。
說明
當我們在使用 setcookie 這個函式時,其實是在告訴瀏覽器: Server 要在它身上註冊一個 cookie 變數,這個變數會在下次瀏覽器連到同一個網站時,被送到 Server 上。
所以第一次我們傾印 $_COOKIE 這個超全域陣列時是抓不到值的 (注意這個動作是在 Server 端) ,因為這時瀏覽器才剛認識 setcookie 丟出來的 test 變數。
當第二次瀏覽同一個網站時,瀏覽器就會把記在自己身上的 cookie 丟回 Server (就像 POST 一樣) ,這時 Server (PHP) 才會知道 cookie 的內容,將它塞到 $_COOKIE 陣列裡。
如果想要第一次執行就取得 $_COOKIE 的值,那麼就得利用 redirect 的方式來處理,如下:
setcookie('test', 'abc'); if (empty($_COOKIE)) header('Location: ./'); var_dump($_COOKIE);
雖然這只是個小觀念,但希望能對大家在使用 Cookie 有進一步的瞭解。
Categories: Web 開發
我也曾經被這個觀念困擾很久 Orz
這個問題之前有碰到過
但 COOKIE 的使用上還不只這些問題
當遇到次網域名稱時也會發生存取錯誤的問題
看起來簡單的操作方便
其實有很深的學問再裏面
以前寫 JSP 的時候 COOKIE 好像不太一樣
不過忘記了 = =
通通還給老師了
PHP的先記起來先
–
:: corAusir :: 程式逗設計
- 提供 平面設計 與 程式設計 的資料 -
blog.corausir.org