使用PHP模拟HTTP认证

发布时间:2008-6-30 22:41:26文章来源:佚名浏览次数:
选择您适合观看的字体大小:  
表单让用户输入用户名和口令,然后再让PHP完成有效性的检查。 

本例显示对两个硬件编码值的确认检查,不论用户名和口令存放在何处,这在理论上完全相同。 

<? 

/* 检查变量 $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>"; 

    } 

}  

?>  

必须提醒,当你正在使用基于文件的保护时,此方式并不能对目录提供全方位的安全保障。。这对大多数人而言是很明显的,但是,如果你的大脑在弹出对话框和保护给定目录二者之间建立一个连接,你应该对此进行进一步的考虑。。 

Julie Meloni 是i2i Interactive的技术主管,及Linux和开放源代码社区的大力推动者。她撰写了很多关于PHP及其他技术的书籍,并成为对CNET Builder.com具有长期贡献的专家。 
  打印新闻关闭窗口