国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

PHP HTTP 認證實例詳解

2024-05-04 23:51:45
字體:
來源:轉載
供稿:網友

HP來實現HTTP的強制認證是十分簡單的,只需簡單的幾行代碼就可以實現,下面我們來看一個例子,然后結合這里例子我向大家詳細介紹一下PHP實現HTTP認證。

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

1.實現說明

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

 2.注意事項:

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

2.PHP的HTTP認證機制僅在PHP以Apache模塊方式運行時才有效,這個容易理解,它本身是HTTP強制認證,肯定是不適合于CGI版本,不能在命令行下執行的.

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

4.在上面列子中,僅輸出了用戶名和密碼,而在實際系統中則可按照登錄驗證流程進行與數據庫或其他方式進行判斷和驗證.

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

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

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 宁化县| 青冈县| 西华县| 湘潭县| 梓潼县| 双鸭山市| 高台县| 双辽市| 凯里市| 定西市| 麻江县| 上虞市| 东山县| 霍林郭勒市| 秦安县| 米泉市| 志丹县| 汉源县| 沂源县| 延川县| 灯塔市| 苍溪县| 蓝田县| 深泽县| 闽侯县| 万盛区| 土默特右旗| 龙游县| 景东| 西乌| 嘉祥县| 徐州市| 桑植县| 比如县| 建始县| 德令哈市| 怀远县| 民权县| 烟台市| 绥棱县| 迁西县|