| |
php的http认证登陆只能运行在php以apache模块安装的服务器上,以CGI模式安装的并不支持此认证。
先看一段自己写的认证实例

<?php
if (!isset($_SERVER['PHP_AUTH_USER']) or !isset($_SERVER['PHP_AUTH_PW'])){
   header('WWW-Authenticate: Basic realm="My Realm"');
   header('HTTP/1.0 401 Unauthorized');
   echo 'Text to send if user hits Cancel button';
   exit;
} else {
   if($_SERVER['PHP_AUTH_USER']!= "1234" and $_SERVER['PHP_AUTH_PW']!="1234"){
  exit("您没有权限访问此页面");
    }
}
echo "some important infomations";
?>

程序第一行,判断用户名或者密码是否存在,如果不存在,则返回弹出对话框强制要求用户输入用户名和密码。$_SERVER["PHP_AUTH_USER"]和$_SERVER["PHP_AUTH_PW"]是php的预定义变量,当用户在用户名和密码框中输入值后,这两个变量就自动生效,否则,就不存在。
第二行,如果用户没有输入(也就是用户没有点击确定按钮,因为用户名和密码也可以为空,这时候用户不输入直接点确定,上述两个变量也已经存在),则弹出用户名/密码输入框
第三行,说明此http的认证类型
第四行,用户若点击取消而非确定按钮,则给出用户提示信息
第五行,如果没有点确定或者其它错误,则结束程序。
第六行和第七、八行,如果用户输入的用户名和密码不是1234,那么则认为用户名和密码输入错误,提示用户没有访问此页面的权利并结束程序。
第九行及最后几行,如果用户输入正确的用户名和密码,则显示一些需要登陆才可以看到的信息。

此段程序的演示地址:http://www.xuexi365.org/test.php
Tags: ,
by admin | 来自 本站原创 | 不指定 2008-1-19 13:22 | 分类: PHP | 评论(3) | 引用(0) | 阅读(852)
kelvean
2008-1-25 10:23
老实说,并不行
不知算不算BUG
就是我第一次什么都不填,直接点确定,会提示无权访问,然后我关闭,再重新打开这个页面,都是显示那个无权访问,连填的机会都没了
admin 回复于 2008-1-31 21:43
http登陆验证是基于session的,你必须关闭浏览器,session才会失效,而不是只关闭一个页面
robbie Email
2008-1-23 12:06
smokesdfsdfsdf
robbie Email
2008-1-23 12:06
feardsdf
分页: 1/1 第一页 1 最后页
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]