PHP指令碼的10個技巧 5

2021-12-29 22:03:01 字數 1468 閱讀 9946

採用php(做為現在的主流開發語言)的使用者認證

如果你希望在每乙個指令碼的基礎上實現口令保護功能,那麼你可以聯合使用header()函式和$php(做為現在的主流開發語言)_auth_user、$php(做為現在的主流開發語言)_auth_pw全域性變數來創造乙個基本的認證方案。通常的、基於伺服器的認證請求/響應回合很象下面這個樣子:

1.使用者向一台web伺服器請求乙個檔案。如果檔案在乙個受到保護的區域以內,伺服器就在響應的檔案頭內加上401(非法使用者)字串作為回應。

2.瀏覽器看見該響應之後就彈出使用者名稱/口令對話方塊。

3.使用者在對話方塊中輸入使用者名稱和口令,然後單擊「確認」按鈕把這些資訊送回到伺服器。

4.如果使用者名稱和口令有效,被保護的檔案將對使用者顯示,並且,只要現在經過證實的使用者一直在保護區域以內。以上的認證過程都有效。

乙個簡單的php(做為現在的主流開發語言)指令碼可以模仿http認證請求/響應系統,方法就是傳送適當的http頭來使得使用者名稱/口令對話方塊自動出現在客戶機的螢幕上。php(做為現在的主流開發語言)把使用者輸入對話方塊的資訊儲存在$php(做為現在的主流開發語言)_auth_user和$php(做為現在的主流開發語言)_auth_pw變數中。使用這些變數,你就可以把不符合使用者名稱/口令檢驗的列表存放到某個文字檔案、資料庫或者你任何自己指定的地方

注意:$php(做為現在的主流開發語言)_auth_user、$php(做為現在的主流開發語言)_auth_pw和$php(做為現在的主流開發語言)_auth_type這三個全域性變數只有在php(做為現在的主流開發語言)被當作乙個模組安裝時才是有效的。如果你正在使用php(做為現在的主流開發語言)的cgi(現在已經不多人在用了)版本,那麼你只能受限於採用基於.htaccess(小型**之最愛)的認證或基於資料庫的認證方式,這樣你就必需設計html表單讓使用者輸入使用者名稱和口令,再讓php(做為現在的主流開發語言)進行有效性的檢查。

下面的這個例子顯示對2個設定值的檢查,但在理論上和以上的使用者名稱和口令檢查並無本質的不同。

/* check for values in $php(做為現在的主流開發語言)_auth_user and $php(做為現在的主流開發語言)_auth_pw */

if ((!isset($php(做為現在的主流開發語言)_auth_user)) || (!isset($php(做為現在的主流開發語言)_auth_pw))) else if ((isset($php(做為現在的主流開發語言)_auth_user)) && (isset($php(做為現在的主流開發語言)_auth_pw))) else if (($php(做為現在的主流開發語言)_auth_user == "validname") || ($php(做為現在的主流開發語言)_auth_pw == "goodpassword"))

} ?>

記住,當你正在使用基於檔案的保護措施時,這種方式不是絕對能保護目錄的安全毯。這對你們中的大多數人而言是顯而易見的,但是,如果你的大腦在彈出對話方塊之間和保護給定目錄之間建立乙個連線,那麼你必須費點勁來認識這一程序。

PHP指令碼的10個技巧 6

php和com 如果你是一名冒險份子,而且你正在使用cgi isapi或apache模組版本的windows系統上執行著php,那麼你也可以獲得系統的com功能。現在,解釋com 微軟的元件物件模型 的工作留給了微軟和那些大部頭的圖書來完成。然而,知道點com也沒什麼錯,下面有乙個普通的 沒有雙關語...

PHP指令碼的10個技巧 2

會話用法 php 4.0有乙個一直為人所期待的特性,這就是php的會話 session 支援。相比之下,php 3.0的使用者則不得不使用第三方的程式庫或完全不能具備這項功能。缺乏會話支援能力是php最大的缺陷之一,也是它最受人指摘的地方。不過,隨著會話支援從早期測試版本的php 4.0開始就成為後...

php 面試技巧 10個值得深思的PHP面試題

文章所羅列的問題雖然看似簡單,但是每個背後都涵蓋了乙個或幾個大家容易忽視的基礎知識點,希望能夠幫助到你的面試和平時工作。第乙個問題關於弱型別 str1 yabadabadoo str2 yaba if strpos str1,str2 else else null null 執行的時候你或許還能看到...