php 密碼正則驗證

2022-06-12發(fā)布者:ylm大?。?/span> 下載:0

文件大小:

軟件介紹

6. 密碼驗證

  也許你想在自己的網(wǎng)站放上你的照片集,而且只想給自己知心的朋友看,這時你需要一個密碼驗證的程序。

6.1 基于HTTP驗證

  如何用PHP來實現(xiàn)密碼驗證的功能呢?我們可以使用簡短的PHP代碼,使用函數(shù)header()發(fā)送HTTP標(biāo)頭強(qiáng)制驗證,客戶端瀏覽器則彈出供輸入用戶名和密碼的對話框。在PHP中,客戶端用戶輸入的信息傳送到服務(wù)端之后自動保存在, , 以及

  不過在這里需要提醒使用者注意的一點是:只有在Apache模塊方式運行的時候,PHP腳本才能使用, , 以及

6.2 下面,我們就來詳細(xì)介紹一下如何使用PHP對用戶身份進(jì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") ) 

// 如果是錯誤的用戶名稱/密碼對,強(qiáng)制再驗證 
Header("WWW-Authenticate: Basic realm="My Realm""); 
Header("HTTP/1.0 401 Unauthorized"); 
echo "ERROR : / is invalid."; 
exit; 

else 

echo "Welcome tnc!"; 

?>

  事實上再實際引用中不大可能如上面使用代碼段明顯的用戶名稱/密碼對,而是利用數(shù)據(jù)庫或者加密的密碼文件存取它們。

6.3 根據(jù)指定的驗證信息核實用戶身份

  首先,我們可以使用以下代碼確定用戶是否已經(jīng)輸入了用戶名和密碼,并顯示出用戶輸入的信息。

<?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>";

}

?>

說明: 
isset()函數(shù)用于確定某個變量是否已被賦值。根據(jù)變量值是否存在,返回true或false。 
header()函數(shù)用于發(fā)送特定的HTTP標(biāo)頭。注意,使用header()函數(shù)時,一定要在任何產(chǎn)生實際輸出的HTML或PHP代碼前面調(diào)用該函數(shù)。

  雖然上述代碼相當(dāng)簡單,沒有根據(jù)任何實際值對用戶輸入的用戶名和密碼進(jìn)行有效驗證,但是至少我們了解了如何使用PHP在客戶端產(chǎn)生輸入對話框。

  下面,我們就來了解一下如何根據(jù)指定的驗證信息核實用戶身份。代碼如下:

<?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>";

}

}

?>

  在這里,我們首先檢查用戶是否已經(jīng)輸入了用戶名稱和密碼,如果沒有則彈出相應(yīng)對話框要求用戶輸入身份信息。隨后,我們通過判斷用戶輸入的信息是否符合admin/123這一指定用戶帳號來授予用戶訪問權(quán)限或提示用戶再次輸入正確的信息。這種方法適用于所有用戶都使用同一登錄帳號的網(wǎng)站。

6.4 另一種簡易的密碼驗證

  如果你是在windows98下面編寫和運行著你的PHP腳本,或者是你在Linux下面按默認(rèn)設(shè)置,將PHP安裝成一個CGI程序的話,你將無法使用上面的PHP程序來實現(xiàn)驗證功能。為此,無邊給大家提供了另外一種簡易的密碼驗證的方法。雖然實用性不大,但是拿來學(xué)習(xí)還是挺好的。 
<?php 
= "123";

// check password 
if( != ) 

echo "<html><head><title>管理密碼</title></head><body>"; 
echo "<form method="post" action=>"; 
echo "請輸入你的管理密碼:<br>"; 
echo "<input type="password" name="pass">"; 
echo "<input type="submit" value="continue">"; 
echo "</form></body></html>"; 

else 

echo "<html><head><title>恭喜你,你已經(jīng)通過了密碼驗證</title></head>"; 
echo "<script>"; 
echo window.location="http://gophp.heha.net/test/index.php3"; 
# 通過密碼驗證后轉(zhuǎn)入的頁面 
echo "</script>";


?>

發(fā)表評論(共0條評論)
請自覺遵守互聯(lián)網(wǎng)相關(guān)政策法規(guī),評論內(nèi)容只代表網(wǎng)友觀點,發(fā)表審核后顯示!

版權(quán)聲明:

1 本站所有資源(含游戲)均是軟件作者、開發(fā)商投稿,任何涉及商業(yè)盈利目的均不得使用,否則產(chǎn)生的一切后果將由您自己承擔(dān)!

2 本站將不對任何資源負(fù)法律責(zé)任,所有資源請在下載后24小時內(nèi)刪除。

3 若有關(guān)在線投稿、無法下載等問題,請與本站客服人員聯(lián)系。

4 如侵犯了您的版權(quán)、商標(biāo)等,請立刻聯(lián)系我們并具體說明情況后,本站將盡快處理刪除,聯(lián)系QQ:2499894784

返回頂部