320 likes | 485 Views
PHP Session 與 Cookie . 教材. 葉建榮 著( 2010 ), PHP6 與 MySQL 基礎學習教室, 上奇資訊股份有限公司, ISBN 9789862570500 (書號 HB1004 ) 陳會安 著( 2013 ), PHP+MySQL 與 jQuery Mobile 跨行動裝置網站開發, 碁峰資訊股份有限公司, ISBN 9789862768563 (書號 ACL037900 ). 大綱. Session Cookie. Session. Web 是沒有狀態的 ! Stateless
E N D
教材 葉建榮 著(2010), PHP6 與 MySQL 基礎學習教室, 上奇資訊股份有限公司, ISBN 9789862570500 (書號 HB1004) 陳會安 著(2013), PHP+MySQL 與 jQuery Mobile 跨行動裝置網站開發, 碁峰資訊股份有限公司, ISBN 9789862768563 (書號 ACL037900)
大綱 Session Cookie
Session • Web 是沒有狀態的! • Stateless • Web Application 必須維護使用者狀態 • 會員是否已登入 • 來賓瀏覽過的商品 • 購物車 • Server 端以 Session 作為維護使用者的工具 • $_SESSION[]是一個陣列
使用 Session 的步驟 • session_start() 啟動 Session • 將資料存入 $_SESSION[] • 從 $_SESSION[] 取出資料 • session_destroy() 銷毀 Session
透過 Session 在網頁間傳遞資料 • 每一個網頁都要執行 session_start() • 如果 session_start() 無法放在第一行,考慮在第一行輸入 ob_start()開啟輸出緩衝,暫緩資料輸出 • 資料輸出後就無法利用 Cookie 儲存 Session
練習:會員管制 • 頁面一:以帳號密碼登入 • 帳號:cust,密碼:csie • 登入成功,轉到頁面二;登入失敗,顯示『帳號或密碼錯誤』 • 頁面二: • 檢查登入紀錄,如果使用者已經登入,則顯示歡迎光臨,並且提供一個【登出】按鈕,登出後回到頁面一。 • 如果使用者未曾登入,強迫使用者前往頁面一! • 安全性檢查: • 直接在瀏覽器的網址列輸入 頁面二 的網址,必須強迫使用者前往頁面一
Cookie • 將資料儲存在使用者的瀏覽器指定目錄內 • 網頁瀏覽紀錄 • 使用者資訊 • 儲存方式: 純文字 • 在Cookie中儲存密碼:不安全
Cookie • 設定函數 使用 setcookie( ) • setcookie() 函數使用前不能有任何網頁的輸出 • 若與 header( ) 或 session_start( ) 函數合用時,需在網頁第一行加上 ob_start( ) 函數 • 讀取 cookie 使用 $_COOKIE[]
Cookie setcookie("Cookie變數名稱","Cookie內容","保存期限","路徑","網域","安全")
Cookie變數內容保存與期限設定 可以透過清除內容刪除 cookie 可以透過強迫逾時刪除 cookie
Cookie變數內容保存與期限設定 • 不同的瀏覽器對於Cookie的儲存位置與處理方式不同 • Cookie 資料無法在各種瀏覽器之間共用 • 瀏覽器可以設定成不允許儲存Cookie • 將 IE 安全性調高,可能造成 Cookie 無法儲存
練習:以 cookie 重做會員管制練習 • 頁面一:以帳號密碼登入 • 帳號:cust,密碼:csie • 登入成功,轉到頁面二;登入失敗,顯示『帳號或密碼錯誤』 • 頁面二: • 檢查登入紀錄,如果使用者已經登入,則顯示歡迎光臨,並且提供一個【登出】按鈕,登出後回到頁面一。 • 如果使用者未曾登入,強迫使用者前往頁面一! • 安全性檢查: • 直接在瀏覽器的網址列輸入 頁面二 的網址,必須強迫使用者前往頁面一 • 『記住我』功能: • 讓瀏覽器記住使用者帳號密碼,下次光顧可以直接進入。