6. 密碼驗證

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

6.1 基于HTTP驗證

  如何用PHP來實現密碼驗證的功能呢?我們可 " /> 欧美成人日韩,人成18亚洲资源在线,福利视频欧美一区二区三区

一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

PHP新手上路(七)

建設一個簡單交互的網站(三)

6. 密碼驗證

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

6.1 基于HTTP驗證

  如何用php來實現密碼驗證的功能呢?我們可以使用簡短的php代碼,使用函數header()發送HTTP標頭強制驗證,客戶端瀏覽器則彈出供輸入用戶名和密碼的對話框。在php中,客戶端用戶輸入的信息傳送到服務端之后自動保存在$php_AUTH_USER, $php_AUTH_PW, 以及 $php_AUTH_TYPE這三個全局變量中。利用這些變量,我們就可以根據實現保存在數據文件或數據庫中的用戶帳號信息驗證用戶身份。

  不過在這里需要提醒使用者注意的一點是:只有在Apache模塊方式運行的時候,php腳本才能使用$php_AUTH_USER, $php_AUTH_PW, 以及 $php_AUTH_TYPE這三個變量。如果用戶使用的是CGI模式的php則無法實現基于HTTP的驗證功能。  

6.2 下面,我們就來詳細介紹一下如何使用php對用戶身份進行驗證。

  在下例中,我們是使用$php_AUTH_USER和$php_AUTH_PW這兩個變量來驗證進入者是否合法并允許進入。在本例中被允許登錄的用戶名稱和密碼對分別為tnc和nature:
<?
if(!isset($php_AUTH_USER))  
{
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 ( !($php_AUTH_USER=="tnc" && $php_AUTH_PW=="nature") )
{
// 如果是錯誤的用戶名稱/密碼對,強制再驗證
Header("WWW-Authenticate: Basic realm="My Realm"");
Header("HTTP/1.0 401 Unauthorized");
echo "ERROR : $php_AUTH_USER/$php_AUTH_PW is invalid.";
exit;
}  
else  
{
echo "Welcome tnc!";
}
?>

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

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

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

<?php  

if (!isset($php_AUTH_USER)) {

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: $php_AUTH_USER<br>

You have entered this password: $php_AUTH_PW<br>

The authorization type is: $php_AUTH_TYPE</p>";

}

?>

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

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

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

<?php

if (!isset($php_AUTH_USER)) {

header('WWW-Authenticate: Basic realm="My Private Stuff"');

header('HTTP/1.0 401 Unauthorized');

echo 'Authorization Required.';

exit;

}

else if (isset($php_AUTH_USER)) {

if (($php_AUTH_USER != "admin") || ($php_AUTH_PW != "123")) {

header('WWW-Authenticate: Basic realm="My Private Stuff"');

header('HTTP/1.0 401 Unauthorized');

echo 'Authorization Required.';

exit;

} else {

echo "<P>You're authorized!</p>";

}

}

?>

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

6.4 另一種簡易的密碼驗證

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

// check password
if($pass != $password)
{
echo "<html><head><title>管理密碼</title></head><body>";
echo "<form method="post" action=$php_SELF>";
echo "請輸入你的管理密碼:<br>";
echo "<input type="password" name="pass">";
echo "<input type="submit" value="continue">";
echo "</form></body></html>";
}
else
{
echo "<html><head><title>恭喜你,你已經通過了密碼驗證</title></head>";
echo "<script>";
echo 'window.location="http://gophp.heha.NET/test/index.php3"';
# 通過密碼驗證后轉入的頁面
echo "</script>";

}
?>    

php技術PHP新手上路(七),轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产一区二区不卡视频 | 国产精品久久一区一区 | 国产91小视频 | 亚洲激情视频网站 | 亚洲合集综合久久性色 | 久久国产精品一区二区三区 | 国产成人综合在线观看网站 | 一区二区三区在线观看视频 | 免费观看成人鲁鲁鲁鲁鲁视频 | 国产中文99视频在线观看 | 国产综合色在线视频 | 国产麻豆91 | 激情毛片视频 | www.婷婷色| 中国美女一级毛片 | 国产免费午夜高清 | 黄色美女免费看 | 能在线观看的一区二区三区 | 久久免费区一区二区三波多野 | 一级做a爰久久毛片武则天 一级做a爰毛片 | 精品一区二区三区四区乱码 | 亚洲视频91 | 欧美日韩理论 | 欧美日韩国产在线观看一区二区三区 | 亚洲精品成人中文网 | 日本视频一区二区三区 | 国产精品国内免费一区二区三区 | 久久精品亚瑟全部免费观看 | 黄色视视频 | 91成人午夜精品福利院在线观看 | 精品视频一二三区 | 伊人天天操 | 色吧综合 | 亚洲最大色网站 | 婷婷色影院 | 久久久999 | 日本高清www色 | 久久91精品国产91久久麻豆 | 97成人在线视频 | 久久亚洲成a人片 | 最近最新中文字幕在线第一页 |