PHP cookie 教學作者 Kelvin Huang Cookie 是一種用於在客戶端儲存小量資訊的技術。當用戶訪問一個網站時,網站可以向用戶的瀏覽器發送一個 Cookie,用戶的瀏覽器會將這個 Cookie 儲存在本地的電腦上。當用戶再次訪問網站時,瀏覽器會將這個 Cookie 傳回給網站,網站可以根據這個 Cookie 判斷用戶的身份、記錄用戶的設置等。 在 PHP 中可以使用 setcookie() 函數來設置 Cookie,語法如下: setcookie(name, value, expire, path, domain, secure, httponly); setcookie() 函數的參數分別是: name:設定 Cookie 的名稱 value:設定 Cookie 的值 expire:設定 Cookie 的過期時間,一般是 Unix 時間戳,表示從 1970 年 1 月 1 日 0 時 0 分 0 秒開始到現在的秒數。 path:設定 Cookie 的作用路徑,表示這個 Cookie 在哪些路徑下有效。 domain:設定 Cookie 的作用域名,表示這個 Cookie 在哪些域名下有效。 secure:布林值,設定此 Cookie 是否只能在 HTTPS 協議下傳輸。 httponly:布林值,設定此 Cookie 是否只能通過 HTTP 或 HTTPS 協議傳輸,無法通過 JavaScript 等客戶端腳本來訪問。
以下是一個使用 setcookie() 函數設置 Cookie 的例子: <?php // 讀取 Cookie 的值
以上範例使用 setcookie() 函數設置了一個名為 username 的 Cookie,值為 Kelvin,有效時間為一個小時。 然後使用 $_COOKIE['username'] 讀取 Cookie 的值並在網頁上顯示。 注意! 如果在 setcookie() 函數之後立即讀取 $_COOKIE 陣列,可能無法獲取到剛才設置的 Cookie,因為瀏覽器還沒有將這個 Cookie 傳回。
以下範例的第一個網頁提供表單讓訪客輸入名稱,按下「確認」按鈕後先將名稱儲存到 Cookie ,然後前往第二個網頁並可顯示訪客名稱,如果訪客先前沒有輸入過名稱,而輸入網址直接進入第二個網頁,則出現「新朋友?歡迎光臨!」的文字。設定 Cookie 過期時間為一年。 這是第一個網頁★ 以上程式先檢查是否有 POST 資料提交,如果有則將名稱儲存到 Cookie 中,然後使用跳轉到 welcome.php 網頁。 這是第二個網頁 welcome.php 。 以上的程式使用 setcookie() 函數將名稱儲存到 Cookie 中,並指定了一年後過期。在第二個網頁中,我們使用了 $_COOKIE 超全域變數來讀取 Cookie 中的名稱。注意,Cookie 中的資料可以被使用者手動清除,所以不能完全依賴 Cookie 中的資料來識別用戶身份,需要配合其他方式,例如 Session 等。 執行結果:
將密碼改為儲存在外部的 txt 文字檔 <?php if (isset($_POST['password']) && $_POST['password'] == $password) { |