管理员用户名/密码不适用于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:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:WindowsSystem32WindowsPowerShellv1.0;c:php;" ["SystemRoot"]=> string(10) "C:Windows" ["COMSPEC"]=> string(27) "C:Windowssystem32cmd.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 FoundationApache2.2htdocsColemanWonder PenguinPHPshow_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 FoundationApache2.2htdocsColemanWonder PenguinPHPshow_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.
使用以下代码获得最佳结果
define(VALID_USERNAME,“admin”); if(($_SERVER [‘PHP_AUTH_USER’]!= VALID_USERNAME)|| header('WWW-Authenticate: Basic realm="Wonder Penguin"'); header('HTTP/1.0 401 Unauthorized'); 出口;} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |