ホームページ >バックエンド開発 >PHPチュートリアル >このプログラムについて質問はありますか?なぜ操作が失敗するのでしょうか?

このプログラムについて質問はありますか?なぜ操作が失敗するのでしょうか?

WBOY
WBOYオリジナル
2016-06-13 13:17:26867ブラウズ

このプログラムの何が問題なのでしょうか?なぜ操作が失敗するのでしょうか?

PHP コード
<!--

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
ドナルド:d5fc4b0e45c8f9a333c005 2c191cf
ミッキー:bc180dbc583491c00f8a1cd134f7517b


ユーザー名とパスワードを入力すると、「$authorized=false」が表示され、入力を示す入力ボックスが 3 回表示され、入力エラーを示します。 。 。

-----解決策---------
入力したパスワードは 60d99e58d66a5e0f4f89ec3ddd1d9a80 ですか?
これは暗号化されたパスワードである必要がありますが、$_SERVER["PHP_AUTH_PW"] は未処理のプレーンテキストです
------解決策------------------
これほど長いパスワード文字列を使用して、間違って入力しないと保証できますか?

$authFile = file("D:/li.txt");
明らかに、ウィンドウの下で作業しています
次に、行末に、新しい行 "n" を追加します。 、キャリッジリターン「r 」もあります
計算していません。どうすれば正しく一致させることができますか?
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。