中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么用PHP實現HTTP的強制認證

發布時間:2021-09-06 15:48:36 來源:億速云 閱讀:117 作者:chen 欄目:開發技術

本篇內容介紹了“怎么用PHP實現HTTP的強制認證”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

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實現HTTP的強制認證”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

天镇县| 利津县| 武清区| 柘城县| 湘阴县| 兴国县| 同心县| 当阳市| 玉龙| 富源县| 伊川县| 福州市| 交口县| 邛崃市| 滦南县| 青神县| 忻州市| 民权县| 晋宁县| 阿坝| 龙游县| 遂平县| 金塔县| 伊通| 建昌县| 泰兴市| 安远县| 青冈县| 海伦市| 布尔津县| 西乡县| 镇坪县| 辰溪县| 赣榆县| 古交市| 彩票| 浪卡子县| 海口市| 孟津县| 定边县| 文水县|