php之cookie會話控制
通過cookie將使用者資料記錄在用戶端而不需要每次都從伺服器調用,這樣能提高網頁效率,降低伺服器的壓力
下面的例子類比一個登入介面的操作,使用cookie的調用
介面顯示(未進行美化)
根目錄下建立需要的檔案
index.php中,首先寫出的表格形式輸出
使用者登入
因為要串連資料庫,並調用資料庫的資料,建立資料庫並建立一個資料庫調用的檔案
建立一個users的表,並插入資料,這裡資料插入資訊包括使用者名稱、密碼和許可權
在根目錄下建立 conn.inc.php 用於存放資料庫連接
conn.inc.php
login.php 中包含串連資料庫,使用mysqli方法,密碼使用 md5() 方法加密query($sql); //儲存資料 if($result->num_rows > 0){ $row=$result->fetch_assoc(); $time=time()*1800; setCookie("username", $_POST["name"],$time); setCookie("uid", $row["id"],$time); setCookie("isLogin",1); header("Location:index.php"); //跳轉介面 } echo "使用者名稱密碼有誤"; }?>
注意cookie儲存資料時需要表明資料儲存的時間長度,儲存資料中返回 “username”,“uid”,“isLogin"index.php 中涉及頁面跳轉,建立一個公用的跳轉頁面的類 comm.php
comm.php:如果傳回的是 “isLogin” 就進行跳轉
登入成功後跳轉到 index.php 頁面下,登入不成功就返回重新登入index.php 包含 conn.inc.php 和 comm.php
".$_COOKIE["username"]."你好!這是網站首頁"; echo "你的許可權如下:
"; $sql="select allow_1,allow_2,allow_3,allow_4 from users where id='{$_COOKIE["uid"]}'"; $result=$mysqli->query($sql); $user=$result->fetch_assoc(); if($user["allow_1"]){ echo "111111111111
"; } if($user["allow_2"]){ echo "222222222222
"; } if($user["allow_3"]){ echo "333333333333
"; } if($user["allow_4"]){ echo "444444444444
"; } ?> 第二頁
第三頁
退出
最後第二頁、第三頁的寫法跟 index.php 一樣登出 logout.php 需要登出使用者資訊
重新登入
完整代碼:
login.php:
query($sql); //儲存資料 if($result->num_rows > 0){ $row=$result->fetch_assoc(); $time=time()*1800; setCookie("username", $_POST["name"],$time); setCookie("uid", $row["id"],$time); setCookie("isLogin",1); header("Location:index.php"); //跳轉介面 } echo "使用者名稱密碼有誤"; }?>使用者登入