第七节 建设一个简单交互的网站(三)_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 " You have entered this username: $PHP_AUTH_USERbr
推荐阅读
-
企业网站建设 设计一个直击用户体验的网站首页的三个原则
-
三大免费开源的php语言cms系统 用好它们让你一天建好一个网站
-
昨天下午没事花了3小时考了阿里云的一个网站建设的认证,简单又实用,并且还有阿里云官方认证的证书,有视频、实验、还有测试,还真是不错啊~~~
-
昨天下午没事花了3小时考了阿里云的一个网站建设的认证,简单又实用,并且还有阿里云官方认证的证书,有视频、实验、还有测试,还真是不错啊~~~ microsoft
-
一个简单的自动发送邮件系统(三)_php基础
-
PHP+MYSQL,ASP/ASP.net+SQL Server,JAVA/JSP+MYSQL,三者的优劣何在?如果要建一个中型的电商网站,采用哪种架构比较好?
-
企业网站建设 设计一个直击用户体验的网站首页的三个原则
-
PHP+MYSQL,ASP/ASP.net+SQL Server,JAVA/JSP+MYSQL,三者的优劣何在?如果要建一个中型的电商网站,采用哪种架构比较好?
-
用PHP和MySQL构建一个数据库驱动的网站三_PHP教程
-
一个简单的PHP网站结构