使用PHP進行用戶認證的方式有三種:HTTp認證、使用session、使用cookie。
使用php進行http認證:
是通過結合header()函數和PHPAUTHUSER、PHP_AUTH_pw全局變量的方法來創建的一個基本認證機制 。
一個簡單的PHP腳本可以通過發送適當的HTTP頭以在客戶機屏幕自動顯示用戶名/口令對話框以模 擬HTTP認證請求/響應系統。
<?php if((!isset($PHP_AUTH_USER)) || (!isset($PHP_AUTH_PW))) { header('WWW-Authenticate:Basic reallm="My Private Stuff"'); header('HTTP/1.0 401 Unauthorized'); echo 'Authorization Required.'; exit; } else if((isset($PHP_AUTH_USET)) && (isset($PHP_AUTH_PW))) { if(($PHP_AUTH_USER!="validname") || ($PHP_AUTH_PW!="goodpassword")) { header('WWW-Authenticate:Basic reallm="My Private Stuff"'); header('HTTP/1.0 401 Unauthorized'); echo 'Authorization Required.'; exit; } else if(($PHP_AUTH_USE=="validname") || ($PHP_AUTH_PW=="goodpassword")) { echo 'YOu are authorized'; } } ?>
cookie是服務器在用戶的機器上存儲信息的一種方式。利用這種方式,站點可以在訪問期間記住或 跟蹤用戶。
Cookie的配置與應用:
cookie通過HTTP Headers從服務器端返回到浏覽器上,首先,服務器端在響應中利用Set- cookie header來創建一個cookie,然後,浏覽器在它的請求中通過cookie header(包含這個已經創 建的cookie),並且返回至服務器,從而完成浏覽器的驗證。
Setcookie(string name, string value, int expire,string path, string domain, int secure);
其中name是cookie變量名稱標識,你在php中將能象使用普通變量名相同來用他引用cookie變量。 value是cookie變量的初始值,expire 表示該cookie變量的有效時間;path 為該cookie變量的相關路 徑;domain 表示cookie變量的網站;secure 則需在 https 的安全傳輸時才有效。
接收和處理Cookie
PHP對Cookie的接收和處理的支持非常好,是完全自動的,跟FORM變量的原則一樣,特別簡單。
比如設置一個名為 MyCookier的Cookie,PHP會自動從WEB服務器接收的HTTP頭裡把它分析出來,並 形成一個與普通變量一樣的變量,名為myCookie,這個變量的值就是Cookie的值。數組同樣適用。另 外一個辦法是引用PHP的全局變量HTTP_COOKIE_VARS數組。
分別舉例如下:(假設這些都在以前的頁面裡設置過了,並且仍然有效)
echo $MyCookie; echo $CookieArray[0]; echo $_COOKIE["MyCookie"]; echo $HTTP_COOKIE_VARS["MyCookie"];
刪除Cookie
要刪除一個已經存在的Cookie,有兩個辦法:
SetCookie("Cookie", ""); //給它賦空值
SetCookie("Cookie", "value" , time()-1 / time() );//設置過期時間