仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3034|回复: 20
打印 上一主题 下一主题

[学习教程] PHP编程:利用PHP摹拟HTTP认证

[复制链接]
谁可相欹 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-4 00:28:19 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
兴趣可能会慢慢消亡,所以适当培养兴趣会激发自己无线的乐趣,有了乐趣,编程有啥难的。   假如你但愿在每一个剧本的基本上完成口令回护功效,那末你可以经由过程联合header()函数和$PHP_AUTH_USER、$PHP_AUTH_PW全局变量的办法来创立一个根基认证机制。凡是基于办事器的认证恳求/呼应进程以下:



1. 用户向一台Web办事器恳求一个文件。假如文件在一个遭到回护的区域之内,办事器就在呼应数据的头部内加上401(不法用户)字符串作为回应。

2.阅读器看见该呼应以后弹出用户名/口令对话框。

3.用户在对话框中输出用户名和口令,然后单击“OK”把这些信息送回到办事器停止认证。

4. 如用户名及口令无效,被回护的文件将会显示给用户。该确认将在经证明的用户在回护区域内的工夫里延续无效。 

一个复杂的PHP剧本可以经由过程发送恰当的HTTP头以在客户机屏幕主动显示用户名/口令对话框以摹拟HTTP认证恳求/呼应体系。PHP将用户输出对话框的信息存储在$PHP_AUTH_USER和$PHP_AUTH_PW变量中。经由过程利用这些变量,可以把不合适用户名/口令查验的列表寄存到某个文本文件、数据库或你但愿的任何中央。

注重:$PHP_AUTH_USER、$PHP_AUTH_PW和$PHP_AUTH_TYPE全局变量仅当PHP被看成一个模块装置时才是无效的。如正利用PHP的CGI版本,则将仅限于利用基于htaccess认证或基于数据库的认证体例,并经由过程HTML表单让用户输出用户名和口令,然后再让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具有临时奉献的专家。


  终于理解了数据库的概念,而且让你兴奋不已的是你终于可以通过PHP来连接数据库了,这期间你是怎么学会的,我们不去考证了,但是事实证明,你已经可以了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-14 14:12

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表