说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

建设一个简单交互的网站(三)密码验证 -PHP初学入门教程7

HTML文档下载 WORD文档下载 PDF文档下载
介绍密码验证的方法。

 

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在客户端产生输入对话框。
  下面,我们就来了解一下如何根据指定的验证信息核实用户身份。代码如下:
<?phpif (!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 passwordif($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://www.okbase.net/test/index.php3"';# 通过密码验证后转入的页面echo "</script>";}?> 

 

在Delphi下用Direct Sound 实现混音器组件 在Delphi中使用DirectX BDE的替代品大全(按数据库类型分)-Delphi资料 BDE的替代品大全(按应用类型分)-Delphi资料 bde的组态文件-Delphi资料 DBGrid中的下拉列表和查找字段编程方法-Delphi资料 Delphi 3.0 中 连 接 数 据 库 的 三 种 方 式 Delphi 3.0中连接数据库的三种方式 Delphi 4中开发数据库控件的方法 Delphi:MIDAS中动态强制约束编程 DELPHI 中 自 适 应表 单 的 实 现 Delphi3数据库编程中的查找字段 Delphi3中 连 接 数 据 库 的 三 种 方 法 Delphi编程实现3DS动画的播放 Delphi访问ODBC数据库 Delphi如何实现在一个Dbgrid中显示多数据库 Delphi筛选数据 Delphi数据集过滤技巧 Delphi数据库应用程序开发中图像数据 Delphi下的ADO Delphi在网络数据库中的应用 Delphi中多库关联查询 Delphi中建表 Delphi中数据文件路径的管理 ODBC中的同步与异步执行模式-Delphi资料 SQL编程常见问题-Delphi资料 第11章 中级SQL-Delphi资料 第10章 SQL基础-Delphi资料 SQL语句中的删除和改变-Delphi资料 TDataLink类别的说明-Delphi资料 TDBGrid控件中对多个记录的处理-Delphi资料 Windows 98下可否运行Tomcat? ???????????为什么没有人回答我,难道没有高人????????? 那一种网络监控软件能将两台进行信息交流的计算机的所有信息监控起来! ScrollWindow有什么用?清高手详细说明! 急!:关于ORACLE9的OEM问题,为什么在OEM中不能进入DBA STUDIO,总是提示搜索不到数据库,请问怎么搜索 八数码问题一定有解吗? 如何写库房盘点部分?(讲原理不要讲代码) 小问题,大家帮我解决一下(类型转换问题) 帮忙看一下这样的.Prj 文件是什么C语言工具生成的。早得我好苦呀 控件签名问题!! 救救我,用VB打包后安装的程序运行出错class not registered!有DBGRID控件 java有什么好? 关于Oracle触发器请教: 在弹出的子窗口关闭的同时,父窗口跳转到另一链接如何做,谢谢! TO:enmity(灵感之源) 如何去掉调用Dll在任务栏产生的图标 ORACLE 8的企业版可以糽一台PC上吗? 急救!1000块钱由1分,2分,5分,1角,2角,5角,1元,2元,5元,10元,20元,50元,100元的任意组合,可有多少种组合? 我的电脑有两个内存条(不是一种型号),今天用优化大师优化了一下,结果出现不能启动的现象,请问各位高手如何解决????? 如何在98下设置默认浏览器? to 吴文智 先生 怎样用Adaptive Server Anywhere6.0发布网络版?PB菜鸟求救.... 我的电脑有两个内存条(不是一种型号),今天用优化大师优化了一下,结果出现不能启动的现象,请问各位高手如何解决??? 菜鸟问题,CString 如何转化成整形 !!!在Delphi中不规则窗体的快速显示??? 我的电脑有两个内存条(不是一种型号),今天用优化大师优化了一下,结果出现不能启动的现象,请问各位高手如何解决? 请教大侠!!!!vb调用com组件方法时传递参数类型的问题 updatesql出错: 在java中如何生成可单独安装运行的应用程序呀?就像.exe一样! 请问有没有关于C#的源代码或资料的网站呢? 怎样定位access数据库的路径? 在32代码中调用过16DLL的高手请进! 高分请教!!!!急请大侠帮忙!!!!!!!!!!!!!!! 我的电脑有两个内存条(不是一种型号),今天用优化大师优化了一下,结果出现不能启动的现象,请问各位高手如何解决 -???? 请大家出谋:朋友要离了,怎么安慰她? pfc问题 jin_shan(DOS)请进来看看,谢谢!! 大家平时玩什么网络游戏?请留下ID和擅长的游戏(玉笛书生有偿调查) 请帮一个忙? 怎么样在程序里注册OCX控件件? 奇怪,为什么我的电脑在死机后重起就不能浏览我写的asp页面了 各位,我現在到這一步了,下一步要做什麼 怎样把一个 Frame 窗体放进一个Penal 中??? 我编了4年程序,可是我在这里的提问没有一个人的回答让我满意!!!! 搞张jbuilder6破解? 特殊字符串查找 请问Win2k pro的Inetinfo.exe进程怎么占用CPU达99%呀?怎么解决呢? 自由自在的人,你在吗? 后缀是nlc的电子图书那里找? 请问vc里缺省参数的函数是怎么定义的?(70分) 救救我!!!数据库管理的几个基础问题?? 喝氨基酸有什么好处? 1000字 安溪家乡的变化作文1000字 家乡的变化作文 有谁知道 知道的请回答 含锌量过多怎么办? 几个鸡蛋大约1千克 家乡的味道 作文1000字.ps;家乡在四川,成都 ■苹果含锌量的多少?到底多不多啊?锌应该不会大量存在于蔬果之中的.刚才我还看了一个关于苹果营养疗效的文章.和锌\有关的.我就感觉不对劲!现在证实了我的想法 ,苹果关键应该不是锌,在 跪求一篇五一劳动节作文五一节游记300字 作文 《变化》 1000字不要家乡的变化,其他都可以,字数只要不低于600字就可以了快点! 什么食物含锌量高? 五一劳动节作文.500字左右. 脯氨酸在植物中的作用 科幻作文350字左右关于角色的 植物是如何利用氨合成氨基酸的 什么是亚氨基酸?为什么脯氨酸是亚氨基酸? 对婴儿来说,有几种氨基酸必须由膳食蛋白质供给,称必需氨基酸. 植物体怎样合成氨基酸? 写动物的生命启示作文400字 请问:“必需氨基酸比值愈接近人体必需氨基酸模式的食物的蛋白质属优质蛋白质”这句话错吗?错在哪里? 蛋白质和氨基酸能否在人体内合成?能否长期存在于人体中? 脯氨酸是不是α-氨基酸可是给出的结构式不是α-氨基酸啊!亚氨基和羧基不在同一个碳原子上?是结构式错了还是别的? 我喜欢的动物 小兔400字左右作文急! 植物中,氨基酸的产生部位和维生素的合成部位分别在哪?某书上说:“地上部分的生命活动必须依赖地上部分产生的糖类、蛋白质、维生素和某些生长物质,而地上部分的生命活动也必须依赖 关于动物的作文 400字左右 给我一篇关于我喜欢的动物,作文,大概500字急! 3千克鸡蛋6元钱,1千克鸡蛋要( )元. 脯氨酸在植物中都有哪些作用?要全,大哥大姐们, 作文 我喜欢的动物:波斯猫(400字) 家乡从原来到现在环境变化的作文 《生活的美好》作文,300-400字左右 我喜欢的动物 450字作文字要多一点,好一点 家乡的环境变化作文 富含氨基酸、蛋白质的食物1.什么食物富含富含氨基酸、蛋白质?2.鱼、海鲜食物富含富含氨基酸、蛋白质吗?请分别作答.谢谢! 作文 我喜欢的动物:加菲猫(400字)急.! 作文 难忘的小学生活600字以上 哪种食物富含氨基酸多? 什么菜含锌量高 目前松节油和松香的价格是多少?所在地的价格,如你知道几个地方的价格那最好. 难忘的小学生活作文(600字左右) 含锌高的食物有哪些, 五一见闻作文怎么写五一这一天发生的事 作文,我的五一长假,450字左右 锌含量高的食物 五一见闻 作文怎么写? 外语作文:是否恢复五一长假.130字左右 什么食物 锌含量比较高? 五一见闻 作文写事写事的作文,也可以拿出一个例子,就是类似的作文给我举一个好题材 氨基酸叶面肥售价各种氨基酸叶面肥的价格是多少批发价! 写一篇题目叫《过年》的作文要求350~400字左右. 氨基酸的功效与作用rt 氨基酸叶面肥的制作工艺 什么食物锌元素含量比较高? 氨基酸的功效到底有哪些?怎么吃都吃不胖,哈哈………… 氨基酸叶面肥技术指标? 以我发现了什么什么,写一篇作文200字 氨基酸有什么功效 汕头的变化1000字作文 我发现了什么的作文 350字 打氨基酸有什么好处? 党在我心中作文(通过家乡的变化来描写党)1000字左右.急!我的家乡在平江,写建党以来党对平江做的贡献.(不要写一些很大的话,就写平江原来怎样,后来怎样,当然,要跟党的贡献有关的).不 什么东西富含氨基酸
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn