|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
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来连接数据库了,这期间你是怎么学会的,我们不去考证了,但是事实证明,你已经可以了。 |
|