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.
總結
以上是生活随笔為你收集整理的php管理用户名和密码,管理员用户名/密码不适用于PHP的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php 数组转为json,php怎么将数
- 下一篇: php分页怎么实行跳转,php分页函数,