首頁 後端開發 php教程 第七节 建设一个简单交互的网站(三)_PHP

第七节 建设一个简单交互的网站(三)_PHP

Jun 01, 2016 pm 12:38 PM
echo 互動 密碼 建置 使用者 簡單 網站 驗證

建设一个简单交互的网站()

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这两个变量来验证进入者是否合法并允许进入。在本例中被允许登录的用户名称和密码对分别为tncnature

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 "

You have entered this username: $PHP_AUTH_USERbr

>

You have entered this password: $PHP_AUTH_PWbr>

The authorization type is: $PHP_AUTH_TYPE

";

}

?>

说明:
isset
()函数用于确定某个变量是否已被赋值。根据变量值是否存在,返回truefalse
header
()函数用于发送特定的HTTP标头。注意,使用header()函数时,一定要在任何产生实际输出的HTMLPHP代码前面调用该函数。

  虽然上述代码相当简单,没有根据任何实际值对用户输入的用户名和密码进行有效验证,但是至少我们了解了如何使用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 "

You're authorized!

";

}

}

?>

  在这里,我们首先检查用户是否已经输入了用户名称和密码,如果没有则弹出相应对话框要求用户输入身份信息。随后,我们通过判断用户输入的信息是否符合admin/123这一指定用户帐号来授予用户访问权限或提示用户再次输入正确的信息。这种方法适用于所有用户都使用同一登录帐号的网站。

6.4 另一种简易的密码验证

  如果你是在windows98下面编写和运行着你的PHP脚本,或者是你在Linux下面按默认设置,将PHP安装成一个CGI程序的话,你将无法使用上面的PHP程序来实现验证功能。为此,无边给大家提供了另外一种简易的密码验证的方法。虽然实用性不大,但是拿来学习还是挺好的。
php
$password = "123";

// check password
if($pass != $password)
{
echo "
管理密码";
echo "

";
echo "
请输入你的管理密码:br>";
echo "";
echo "";
echo "";
}
else
{
echo "恭喜你,你已经通过了密码验证";
echo "<script>";<BR>echo '<SPAN class=SpellE>window.location</script>
="http://gophp.heha.net/test/index.php3"';
# 通过密码验证后转入的页面
echo "";

}
?>

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何用小紅書號找出用戶?能查到手機號碼嗎? 如何用小紅書號找出用戶?能查到手機號碼嗎? Mar 22, 2024 am 08:40 AM

如何用小紅書號找出用戶?能查到手機號碼嗎?

win11提示若要繼續,請輸入管理員使用者名稱和密碼怎麼解決? win11提示若要繼續,請輸入管理員使用者名稱和密碼怎麼解決? Apr 11, 2024 am 09:10 AM

win11提示若要繼續,請輸入管理員使用者名稱和密碼怎麼解決?

以超級使用者登入Ubuntu 以超級使用者登入Ubuntu Mar 20, 2024 am 10:55 AM

以超級使用者登入Ubuntu

如何使用手機設定路由器WiFi密碼(以手機為工具) 如何使用手機設定路由器WiFi密碼(以手機為工具) Apr 24, 2024 pm 06:04 PM

如何使用手機設定路由器WiFi密碼(以手機為工具)

微信好友輔助驗證解封的詳細方法 微信好友輔助驗證解封的詳細方法 Mar 25, 2024 pm 01:26 PM

微信好友輔助驗證解封的詳細方法

手機修改wifi密碼教學(簡單操作) 手機修改wifi密碼教學(簡單操作) Apr 26, 2024 pm 06:25 PM

手機修改wifi密碼教學(簡單操作)

密碼不正確,小心BitLocker警告 密碼不正確,小心BitLocker警告 Mar 26, 2024 am 09:41 AM

密碼不正確,小心BitLocker警告

能解開所有wifi的密碼的軟體叫什麼(一鍵取得已連接WiFi密碼的手機軟體推薦) 能解開所有wifi的密碼的軟體叫什麼(一鍵取得已連接WiFi密碼的手機軟體推薦) Apr 02, 2024 pm 06:46 PM

能解開所有wifi的密碼的軟體叫什麼(一鍵取得已連接WiFi密碼的手機軟體推薦)

See all articles