文件大小:
軟件介紹
6. 密碼驗(yàn)證
也許你想在自己的網(wǎng)站放上你的照片集,而且只想給自己知心的朋友看,這時(shí)你需要一個(gè)密碼驗(yàn)證的程序。
6.1 基于HTTP驗(yàn)證
如何用PHP來(lái)實(shí)現(xiàn)密碼驗(yàn)證的功能呢?我們可以使用簡(jiǎn)短的PHP代碼,使用函數(shù)header()發(fā)送HTTP標(biāo)頭強(qiáng)制驗(yàn)證,客戶(hù)端瀏覽器則彈出供輸入用戶(hù)名和密碼的對(duì)話框。在PHP中,客戶(hù)端用戶(hù)輸入的信息傳送到服務(wù)端之后自動(dòng)保存在, , 以及
不過(guò)在這里需要提醒使用者注意的一點(diǎn)是:只有在Apache模塊方式運(yùn)行的時(shí)候,PHP腳本才能使用, , 以及
6.2 下面,我們就來(lái)詳細(xì)介紹一下如何使用PHP對(duì)用戶(hù)身份進(jìn)行驗(yàn)證。
在下例中,我們是使用
<?
if(!isset())
{
Header("WWW-Authenticate: Basic realm="My Realm"");
Header("HTTP/1.0 401 Unauthorized");
echo "Text to send if user hits Cancel buttonn";
exit;
}
else
{
if ( !(=="tnc" && =="nature") )
{
// 如果是錯(cuò)誤的用戶(hù)名稱(chēng)/密碼對(duì),強(qiáng)制再驗(yàn)證
Header("WWW-Authenticate: Basic realm="My Realm"");
Header("HTTP/1.0 401 Unauthorized");
echo "ERROR : / is invalid.";
exit;
}
else
{
echo "Welcome tnc!";
}
?>
事實(shí)上再實(shí)際引用中不大可能如上面使用代碼段明顯的用戶(hù)名稱(chēng)/密碼對(duì),而是利用數(shù)據(jù)庫(kù)或者加密的密碼文件存取它們。
6.3 根據(jù)指定的驗(yàn)證信息核實(shí)用戶(hù)身份
首先,我們可以使用以下代碼確定用戶(hù)是否已經(jīng)輸入了用戶(hù)名和密碼,并顯示出用戶(hù)輸入的信息。
<?php
if (!isset()) {
header(WWW-Authenticate: Basic realm="My Private Stuff");
header(HTTP/1.0 401 Unauthorized);
echo Authorization Required.;
exit;
}
else {
echo "<P>You have entered this username: <br>
You have entered this password: <br>
The authorization type is: </p>";
}
?>
說(shuō)明:
isset()函數(shù)用于確定某個(gè)變量是否已被賦值。根據(jù)變量值是否存在,返回true或false。
header()函數(shù)用于發(fā)送特定的HTTP標(biāo)頭。注意,使用header()函數(shù)時(shí),一定要在任何產(chǎn)生實(shí)際輸出的HTML或PHP代碼前面調(diào)用該函數(shù)。
雖然上述代碼相當(dāng)簡(jiǎn)單,沒(méi)有根據(jù)任何實(shí)際值對(duì)用戶(hù)輸入的用戶(hù)名和密碼進(jìn)行有效驗(yàn)證,但是至少我們了解了如何使用PHP在客戶(hù)端產(chǎn)生輸入對(duì)話框。
下面,我們就來(lái)了解一下如何根據(jù)指定的驗(yàn)證信息核實(shí)用戶(hù)身份。代碼如下:
<?php
if (!isset()) {
header(WWW-Authenticate: Basic realm="My Private Stuff");
header(HTTP/1.0 401 Unauthorized);
echo Authorization Required.;
exit;
}
else if (isset()) {
if (( != "admin") || ( != "123")) {
header(WWW-Authenticate: Basic realm="My Private Stuff");
header(HTTP/1.0 401 Unauthorized);
echo Authorization Required.;
exit;
} else {
echo "<P>Youre authorized!</p>";
}
}
?>
在這里,我們首先檢查用戶(hù)是否已經(jīng)輸入了用戶(hù)名稱(chēng)和密碼,如果沒(méi)有則彈出相應(yīng)對(duì)話框要求用戶(hù)輸入身份信息。隨后,我們通過(guò)判斷用戶(hù)輸入的信息是否符合admin/123這一指定用戶(hù)帳號(hào)來(lái)授予用戶(hù)訪問(wèn)權(quán)限或提示用戶(hù)再次輸入正確的信息。這種方法適用于所有用戶(hù)都使用同一登錄帳號(hào)的網(wǎng)站。
6.4 另一種簡(jiǎn)易的密碼驗(yàn)證
如果你是在windows98下面編寫(xiě)和運(yùn)行著你的PHP腳本,或者是你在Linux下面按默認(rèn)設(shè)置,將PHP安裝成一個(gè)CGI程序的話,你將無(wú)法使用上面的PHP程序來(lái)實(shí)現(xiàn)驗(yàn)證功能。為此,無(wú)邊給大家提供了另外一種簡(jiǎn)易的密碼驗(yàn)證的方法。雖然實(shí)用性不大,但是拿來(lái)學(xué)習(xí)還是挺好的。
<?php
= "123";
// check password
if( != )
{
echo "<html><head><title>管理密碼</title></head><body>";
echo "<form method="post" action=>";
echo "請(qǐng)輸入你的管理密碼:<br>";
echo "<input type="password" name="pass">";
echo "<input type="submit" value="continue">";
echo "</form></body></html>";
}
else
{
echo "<html><head><title>恭喜你,你已經(jīng)通過(guò)了密碼驗(yàn)證</title></head>";
echo "<script>";
echo window.location="http://gophp.heha.net/test/index.php3";
# 通過(guò)密碼驗(yàn)證后轉(zhuǎn)入的頁(yè)面
echo "</script>";
}
?>
版權(quán)聲明:
1 本站所有資源(含游戲)均是軟件作者、開(kāi)發(fā)商投稿,任何涉及商業(yè)盈利目的均不得使用,否則產(chǎn)生的一切后果將由您自己承擔(dān)!
2 本站將不對(duì)任何資源負(fù)法律責(zé)任,所有資源請(qǐng)?jiān)谙螺d后24小時(shí)內(nèi)刪除。
3 若有關(guān)在線投稿、無(wú)法下載等問(wèn)題,請(qǐng)與本站客服人員聯(lián)系。
4 如侵犯了您的版權(quán)、商標(biāo)等,請(qǐng)立刻聯(lián)系我們并具體說(shuō)明情況后,本站將盡快處理刪除,聯(lián)系QQ:2499894784
- 千億體育手機(jī)版本v2.0.1 安卓版
- tplink物聯(lián)電腦版(原tplink安防) v2.12.17.
- Sandboxie Plus v1.9.8 / v5.64.8 開(kāi)源電腦
- 字魂100號(hào)方方先鋒體字體包免費(fèi)版
- 奧維互動(dòng)地圖奧維地圖PC破解版VIP V9.0.6
- 蘭博對(duì)戰(zhàn)平臺(tái) V1.38.6 官方最新版 / 蘭博玩
- reWASD(Xbox One手柄映射工具) V6.0.1.5190
- mtool修改器 V2023.11 官方最新版 / mtool
- 115轉(zhuǎn)存助手ui優(yōu)化版腳本 V3.9.1 綠色免費(fèi)
- iSecure Center電腦客戶(hù)端 V1.5.0 官方版
點(diǎn)擊加載更多評(píng)論>>