> 백엔드 개발 > PHP 튜토리얼 > 请教这个程序有什么有关问题?为什么运行不成功

请教这个程序有什么有关问题?为什么运行不成功

WBOY
풀어 주다: 2016-06-13 13:17:26
원래의
870명이 탐색했습니다.

请问这个程序有什么问题?为什么运行不成功?

PHP code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
<?php $authorized = false;

    if (isset($_SERVER["PHP_AUTH_USER"]) && isset($_SERVER["PHP_AUTH_PW"])) {
        $authFile = file("D:/li.txt");
        
        if (in_array($_SERVER["PHP_AUTH_USER"].":".$_SERVER["PHP_AUTH_PW"]."\n", $authFile))
            $authorized = true;
    }
    
    if (! $authorized) {
        header("WWW-Authenticate: Basic Realm=输入用户名与密码");
        header("HTTP/1.0 401 Unauthorized");
        
        print("You must provide the proper credentials!");
        exit;
    }
?>

로그인 후 복사


我的d:\li.txt文件:
jason:60d99e58d66a5e0f4f89ec3ddd1d9a80
donald:d5fc4b0e45c8f9a333c0056492c191cf
mickey:bc180dbc583491c00f8a1cd134f7517b


输入用户名与密码后却$authorized=false,一直弹出输入框表示输入,三次后却显示You must provide the proper credentials!表示输入错误。。。

------解决方案--------------------
你确定你输入的密码是 60d99e58d66a5e0f4f89ec3ddd1d9a80 这样的吗?
这个是应该是加密后的密码,而 $_SERVER["PHP_AUTH_PW"] 则是未经处理过的明文
------解决方案--------------------
那么长的密码串,你能保证不输错?

$authFile = file("D:/li.txt");
显然你是在 window 下工作
那么行结束处除了新行“\n”还有回车“\r”
你没计算进去,如何能正确匹配?
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿