PHP HTTP 认证实例详解
HP来实现HTTP的强制认证是十分简单的,只需简单的几行代码就可以实现,下面我们来看一个例子,然后结合这里例子我向大家详细介绍一下PHP实现HTTP认证。 lt;#63;php if(!isset($_SERVER['PHP_AUTH_USER'])) { header('WWW-Authenticate: Basic realm="系统名称"'); header('HTTP/1.0 401 Unauthorized'); echo '未通过HTTP认证.'; exit; } else { echo '认证通过.'; echo '用户名: '.$_SERVER['PHP_AUTH_USER']."n"; echo '密码: '.$_SERVER['PHP_AUTH_PW']."n"; } #63;gt; 1.实现说明 怎么样,看到上面的代码了吧,就这么几行添加到你的程序页面上就可以实现了. nbsp;2.注意事项: 1.这段代码必须放到程序的开始,且在其开始执行之前不能有任何输出(若有输出则需要使用输出缓冲函数才行). 2.PHP的HTTP认证机制仅在PHP以Apache模块方式运行时才有效,这个容易理解,它本身是HTTP强制认证,肯定是不适合于CGI版本,不能在命令行下执行的. 3.header发送标头代码时请小心.为了对所有的客户端保证兼容性,关键字”Basic”的第一个字母必须大写为”B”,分界字符串必须用双引号引用(不能是单引号);在HTTP/1.0和401之间必须有且仅有一个空格. 4.在上面列子中,仅输出了用户名和密码,而在实际系统中则可按照登录验证流程进行与数据库或其他方式进行判断和验证. 5.从PHP4.3.0起,为防止有人通过编写脚本来从页面上获取密码,当外部认证对特定页面有效,并且安全模式被开启时,PHP_AUTH变量将不会被设置.可以用REMOTE_USER来辨别外部认证的用户,用AuthType指令来判断外部认证机制是否有效. 6.要想让HTTP认证能够在IIS下工作,PHP配置选项cgi.rfc2616_headers必须设置为0(默认值). 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持! (编辑:淮北站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |