国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

PHP HTTP 認(rèn)證實(shí)例詳解

Original 2016-12-27 14:03:38 253
abstract:這篇文章主要介紹了PHP HTTP 認(rèn)證實(shí)例詳解的相關(guān)資料。HP來實(shí)現(xiàn)HTTP的強(qiáng)制認(rèn)證是十分簡單的,只需簡單的幾行代碼就可以實(shí)現(xiàn),下面我們來看一個(gè)例子,然后結(jié)合這里例子我向大家詳細(xì)介紹一下PHP實(shí)現(xiàn)HTTP認(rèn)證。<?php  if(!isset($_SERVER['PHP_AUTH_USER'])) {  header('WWW-Aut

這篇文章主要介紹了PHP HTTP 認(rèn)證實(shí)例詳解的相關(guān)資料。

HP來實(shí)現(xiàn)HTTP的強(qiáng)制認(rèn)證是十分簡單的,只需簡單的幾行代碼就可以實(shí)現(xiàn),下面我們來看一個(gè)例子,然后結(jié)合這里例子我向大家詳細(xì)介紹一下PHP實(shí)現(xiàn)HTTP認(rèn)證。

<?php
 if(!isset($_SERVER['PHP_AUTH_USER'])) {
 header('WWW-Authenticate: Basic realm="系統(tǒng)名稱"');
 header('HTTP/1.0 401 Unauthorized');
 echo '未通過HTTP認(rèn)證.';
 exit;
 }
 else {
 echo '認(rèn)證通過.';
 echo '用戶名: '.$_SERVER['PHP_AUTH_USER']."\n";
 echo '密碼: '.$_SERVER['PHP_AUTH_PW']."\n";
 }
?>

1.實(shí)現(xiàn)說明

怎么樣,看到上面的代碼了吧,就這么幾行添加到你的程序頁面上就可以實(shí)現(xiàn)了.
它是通過利用header()函數(shù)向客戶端瀏覽器發(fā)送”Authentication Required”信息,強(qiáng)制其彈出一個(gè)用戶名/密碼輸入窗口,當(dāng)用戶輸入用戶名和密碼后,包含有URL的PHP腳本將會加上預(yù)定義變量PHP_AUTH_USER, PHP_AUTH_PW和AUTH_TYPE然后再次調(diào)用,這三個(gè)變量分別表示用戶名,密碼和認(rèn)證類型(從PHP5.0.1起開始支持”Basic”和”Digest”兩種認(rèn)證方式),它們被保存在$_SERVER(從HP>>4.1.0起有效)或$HTTP_SERVER_VARS(從PHP3起有效)數(shù)組中具體應(yīng)用時(shí),我們可以把驗(yàn)證的幾行代碼寫成函數(shù),只要判斷到用戶變量不存在或驗(yàn)證不正確就一直執(zhí)行該函數(shù)并彈出窗口,而且還可以設(shè)置錯(cuò)誤登錄幾次就不允許該用戶訪問,具體的使用大家使勁的發(fā)散思考吧.

 2.注意事項(xiàng):

1.這段代碼必須放到程序的開始,且在其開始執(zhí)行之前不能有任何輸出(若有輸出則需要使用輸出緩沖函數(shù)才行).

2.PHP的HTTP認(rèn)證機(jī)制僅在PHP以Apache模塊方式運(yùn)行時(shí)才有效,這個(gè)容易理解,它本身是HTTP強(qiáng)制認(rèn)證,肯定是不適合于CGI版本,不能在命令行下執(zhí)行的.

3.header發(fā)送標(biāo)頭代碼時(shí)請小心.為了對所有的客戶端保證兼容性,關(guān)鍵字”Basic”的第一個(gè)字母必須大寫為”B”,分界字符串必須用雙引號引用(不能是單引號);在HTTP/1.0和401之間必須有且僅有一個(gè)空格.

4.在上面列子中,僅輸出了用戶名和密碼,而在實(shí)際系統(tǒng)中則可按照登錄驗(yàn)證流程進(jìn)行與數(shù)據(jù)庫或其他方式進(jìn)行判斷和驗(yàn)證.

5.從PHP4.3.0起,為防止有人通過編寫腳本來從頁面上獲取密碼,當(dāng)外部認(rèn)證對特定頁面有效,并且安全模式被開啟時(shí),PHP_AUTH變量將不會被設(shè)置.可以用REMOTE_USER來辨別外部認(rèn)證的用戶,用AuthType指令來判斷外部認(rèn)證機(jī)制是否有效.

6.要想讓HTTP認(rèn)證能夠在IIS下工作,PHP配置選項(xiàng)cgi.rfc2616_headers必須設(shè)置為0(默認(rèn)值).

更多關(guān)于PHP HTTP 認(rèn)證實(shí)例詳解請關(guān)注PHP中文網(wǎng)(www.miracleart.cn)其它文章!

Release Notes

Popular Entries