|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
PHP原始为Personal Home Page的缩写,已经正式更名为 "PHP: Hypertext Preprocessor"。注意不是“Hypertext Preprocessor”的缩写,这种将名称放到定义中的写法被称作递归缩写。技能|剧本 采取PHP的用户认证
假如你但愿在每个剧本的基本上完成口令回护功效,那末你可以结合利用header()函数和$PHP_AUTH_USER、$PHP_AUTH_PW全局变量来发明一个根基的认证计划。凡是的、基于办事器的认证恳求/呼应回合很象上面这个模样:
1.用户向一台Web办事器恳求一个文件。假如文件在一个遭到回护的区域之内,办事器就在呼应的文件头内加上401(不法用户)字符串作为回应。
2.阅读器看见该呼应以后就弹出用户名/口令对话框。
3.用户在对话框中输出用户名和口令,然后单击“确认”按钮把这些信息送回到办事器。
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停止无效性的反省。
上面的这个例子显示对2个设定值的反省,但在实际上和以上的用户名和口令反省并没有实质的分歧。
<?
/* Check for values in $PHP_AUTH_USER and $PHP_AUTH_PW */
if ((!isset($PHP_AUTH_USER)) || (!isset($PHP_AUTH_PW))) {
/* No values: send headers causing dialog box to appear */
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))){
/* Values contain some values, so check to see if they're correct */
if (($PHP_AUTH_USER != "validname") || ($PHP_AUTH_PW != "goodpassword")) {
/* If either the username entered is incorrect, or the password entered is incorrect, send the headers causing dialog box to appear */
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")) {
/* if both values are correct, print success message */
echo "<P>You're authorized!</p>";
}
}
?>
记住,当你正在利用基于文件的回护办法时,这类体例不是相对能回护目次的平安毯。这对你们中的大多半人而言是不言而喻的,然而,假如你的大脑在弹出对话框之间和回护给定目次之间创立一个毗连,那末你必需费点劲来熟悉这一历程。
培训的第一阶段,学习的是HTML/CSS/JavaScript基础。 |
|