怎么用PHP實(shí)現(xiàn)HTTP的強(qiáng)制認(rèn)證-創(chuàng)新互聯(lián)

本篇內(nèi)容介紹了“怎么用PHP實(shí)現(xiàn)HTTP的強(qiáng)制認(rèn)證”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、嘉蔭網(wǎng)絡(luò)推廣、小程序開發(fā)、嘉蔭網(wǎng)絡(luò)營銷、嘉蔭企業(yè)策劃、嘉蔭品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供嘉蔭建站搭建服務(wù),24小時(shí)服務(wù)熱線:18982081108,官方網(wǎng)址:muchs.cn

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腳本將會(huì)加上預(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變量將不會(huì)被設(shè)置.可以用REMOTE_USER來辨別外部認(rèn)證的用戶,用AuthType指令來判斷外部認(rèn)證機(jī)制是否有效.


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

“怎么用PHP實(shí)現(xiàn)HTTP的強(qiáng)制認(rèn)證”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

分享題目:怎么用PHP實(shí)現(xiàn)HTTP的強(qiáng)制認(rèn)證-創(chuàng)新互聯(lián)
文章起源:http://muchs.cn/article14/dejode.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、網(wǎng)站維護(hù)、做網(wǎng)站、品牌網(wǎng)站建設(shè)網(wǎng)站建設(shè)、品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)