php管理用户名和密码,管理员用户名/密码不适用于PHP

所以我目前正在学习

PHP编程课程,最后我进入了认证和授权的艺术.

因此,在本书中,我们首先限制授予您可以更新和删除所有帐户的所有帐户的访问权限的页面.我们从定义常量开始:

define('VALID_USERNAME', '');

define('VALID_PASSWORD', '');

为了方便自己,我只是将它们作为空字符串.

一切顺利,弹出用户名和密码的对话框弹出.

但是,当我把空字符串放入时,对话框会一直弹出,好像密码错误,或者根本就没有输入密码.即使我用真实字符串定义用户名和密码,也会发生这种情况.

这是我的部分代码:

if (!isset($_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP_AUTH_PW'])) {

header('http/1.1 401 Unauthorized');

header('WWW-Authenticate: Basic realm="Wonder Penguin"');

} else {

if (($_SERVER['PHP_AUTH_USER'] != VALID_USERNAME) ||

($_SERVER['PHP_AUTH_PW'] != VALID_PASSWORD)) {

header('http/1.1 401 Unauthorized');

header('WWW-Authenticate: Basic realm="Wonder Penguin"');

}

}

如果您想知道为什么我没有使用exit()函数来阻止人们点击取消来绕过身份验证并进入更新页面.我这样做了,所以我的老师可以评分我创建最后作业的页面.

我是多么厌倦排除故障:

我测试了是否通过使用echo函数正确定义了有效的用户名和密码.

echo VALID_USERNAME;

echo VALID_PASSWORD;

它突然出现了我的定义.所以在理论上,我认为我正确地定义了它.

我试着用单引号,双引号和没有引号来编写define函数.

这本书要我写这样的函数:

define(VALID_USERNAME, "admin");

define(VALID_PASSWORD, "password");

但是,当我尝试在那里定义它时,这会导致我使用未定义常量的错误.

后续代码var_dump($_ SERVER);结果:

array(37) {

["REDIRECT_HANDLER"]=> string(23) "application/x-httpd-php"

["REDIRECT_STATUS"]=> string(3) "200"

["HTTP_HOST"]=> string(20) "patti-bee2.dcccd.edu"

["HTTP_CONNECTION"]=> string(10) "keep-alive"

["HTTP_ACCEPT"]=> string(74) "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"

["HTTP_USER_AGENT"]=> string(108) "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36"

["HTTP_ACCEPT_ENCODING"]=> string(17) "gzip,deflate,sdch"

["HTTP_ACCEPT_LANGUAGE"]=> string(14) "en-US,en;q=0.8"

["HTTP_COOKIE"]=> string(217) "__qca=P0-630369357-1378011844686; __utma=198331962.264424896.1377179965.1382812794.1384740700.12; __utmc=198331962; __utmz=198331962.1381981575.8.4.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided)"

["PATH"]=> string(135) "C:\Program Files (x86)\PHP\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;c:\php;"

["SystemRoot"]=> string(10) "C:\Windows"

["COMSPEC"]=> string(27) "C:\Windows\system32\cmd.exe"

["PATHEXT"]=> string(53) ".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC"

["WINDIR"]=> string(10) "C:\Windows"

["SERVER_SIGNATURE"]=> string(0) ""

["SERVER_SOFTWARE"]=> string(21) "Apache/2.2.22 (Win32)"

["SERVER_NAME"]=> string(20) "patti-bee2.dcccd.edu"

["SERVER_ADDR"]=> string(14) "144.162.99.193"

["SERVER_PORT"]=> string(2) "80"

["REMOTE_ADDR"]=> string(11) "99.7.247.36"

["DOCUMENT_ROOT"]=> string(66) "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs"

["SERVER_ADMIN"]=> string(16) "pburks@dcccd.edu"

["SCRIPT_FILENAME"]=> string(106) "C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\Coleman\Wonder Penguin\PHP\show_all.php"

["REMOTE_PORT"]=> string(5) "54619"

["REDIRECT_URL"]=> string(40) "/coleman/wonder penguin/php/show_all.php"

["GATEWAY_INTERFACE"]=> string(7) "CGI/1.1"

["SERVER_PROTOCOL"]=> string(8) "HTTP/1.1"

["REQUEST_METHOD"]=> string(3) "GET"

["QUERY_STRING"]=> string(0) ""

["REQUEST_URI"]=> string(42) "/coleman/wonder%20penguin/php/show_all.php"

["SCRIPT_NAME"]=> string(40) "/coleman/wonder penguin/php/show_all.php"

["ORIG_SCRIPT_FILENAME"]=> string(18) "C:/PHP/php-cgi.exe"

["ORIG_PATH_INFO"]=> string(40) "/coleman/wonder penguin/php/show_all.php"

["ORIG_PATH_TRANSLATED"]=> string(106) "C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\Coleman\Wonder Penguin\PHP\show_all.php"

["ORIG_SCRIPT_NAME"]=> string(16) "/php/php-cgi.exe"

["PHP_SELF"]=> string(40) "/coleman/wonder penguin/php/show_all.php"

["REQUEST_TIME"]=> int(1385432192)

}

此时我已经将它直接从书中复制出来了.

我究竟做错了什么?

如果你想亲自尝试一下,这里是link to my site.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值