帝国软件
  设为首页 加入收藏 关于我们
 
解密帝国网站管理系统
栏 目:
 
您的位置:首页 > 技术文档 > PHP编程
基于PHP的用户认证
作者:佚名 发布时间:2005-04-02 来源:不详
   在PHP中,如果希望在每一段脚本上都进行口令保护,可以结合使用header()语句、$PHP_AUTH_USER和$PHP_AUTH_PW来建立基本的认证方案,一般情况下,基于服务器的提问和响应顺序如下:   1.用户从服务器上请求一个文件,如果这个文件在服务器上是被保护的,则在响应的头部向用户返回一个401(示用户应授权)字符串;   2.浏览器收到这个响应后,弹出要求用户输入用户名/口令的对话框;   3.用户在对话框中输入一个用户名和口令,点击OK按钮将信息返回服务器供认证使用;   4.如果用户名和口令有效,被保护的文件将向用户开放,只要用户还在使用文件,认证会一直有效。     一段简单的PHP脚本文件通过向用户发送一个适当的能够引起自动显示用户名/口令对话框的HTTP头部就可以模仿HTTP的提问/响应系统,PHP把用户在用户名/口令对话框中输入的信息存储在$PHP_AUTH_USER和$PHP_AUTH_PW中,使用这二个变量,就可以与存储在文本文件、数据库等文件中的用户名/口令进行比较。   这个例子中,笔者采用了两个常量值进行认证,其实无论用户名和口令是常量还是变量,其原理都是相同的。     〈?   / 检查$PHP_AUTH_USER和$PHP_AUTH_PW中的值 /   if ((!isset($PHP_AUTH_USER))    (!isset($PHP_AUTH_PW))) {   / 如果没有值,则发送一个能够引发对话框出现的头部 /    header('WWW-Authenticate: Basic realm="My Private Stuff"');   header('HTTP/1.0 401 Unauthorized');   echo 'Authorization Required.';   exit;   } else if ((isset($PHP_AUTH_USER)) &&&& (isset($PHP_AUTH_PW))){   / 变量中有值,检查它们是否正确 /   if (($PHP_AUTH_USER != "validname")    ($PHP_AUTH_PW != "goodpassword")) {   / 如果输入的用户名和口令中有一个不正确,则发送一个能够引发对话框出现的头部 /    header('WWW-Authenticate: Basic realm="My Private Stuff"');   header('HTTP/1.0 401 Unauthorized');   echo 'Authorization Required.';   exit;     } else if (($PHP_AUTH_USER == "validname")    ($PHP_AUTH_PW == "goodpassword")) {   / 如果二个值都正确,显示成功的信息 /   echo "〈P〉You're authorized!〈/p〉";   }   }   ?〉   需要注意的是,如果你使用的是基于文件的保护机制,它并不能保证目录中所有文件的安全。它可能保护大部分的文件,如果你认为它能够保护给定目录中的所有文件,你的这种认识就需要变变了。
  
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·基于J2EE的三层B/S信息系统研究  (2005-04-02)
 ·J2EE-开放的、基于标准的开发和  (2005-04-02)
 ·一个基于ASP的标题广告管理系统(  (2005-03-12)
 ·一个基于ASP的标题广告管理系统(  (2005-03-12)
 ·一个基于ASP的标题广告管理系统(  (2005-03-12)
 ·基于ACCESS数据库的纯asp论坛制作  (2005-03-12)
 ·显示页面show.asp--基于web的QQ程  (2005-03-12)
 ·接收信息页面inform.asp--基于we  (2005-03-12)
 ·发送信息页面send.asp--基于web的  (2005-03-12)
 ·基于WEB系统的多语言支持--ASP国  (2005-03-12)

   栏目导行
  PHP编程
  ASP编程
  ASP.NET编程
  JAVA编程
   站点最新
·致合作伙伴的欢迎信
·媒体报道
·帝国软件合作伙伴计划协议
·DiscuzX2.5会员整合通行证发布
·帝国CMS 7.0版本功能建议收集
·帝国网站管理系统2012年授权购买说
·PHPWind8.7会员整合通行证发布
·[官方插件]帝国CMS-访问统计插件
·[官方插件]帝国CMS-sitemap插件
·[官方插件]帝国CMS内容页评论AJAX分
   类别最新
·Windows下集成安装Apache,PHP,MYSQ
·Mysql注入:SQL Injection with MyS
·PHP 的来龙去脉
·PHP 的功能概述
·PHP与其它CGI的比较
·PHP 的编译配置详细选项
·php.ini 配置详细选项
·如何写作PHP程序
·Hello,World
·嵌入方法
 
关于帝国 | 广告服务 | 联系我们 | 程序开发 | 网站地图 | 留言板 帝国网站管理系统