0

私は非常に単純なログイン スクリプトを持っています。必要なのはパスワードだけです。ユーザーはログインを試み、ユーザーが間違ったパスワードを入力すると、php スクリプトはパスワードをテキスト ファイルに追加しますが、最初にスクリプトはパスワードが既にファイルにあるかどうかをチェックし、存在する場合はスクリプトに 1 を追加します。ファイル内の試行回数。私の問題は、すべてのパスワードを確認してからパスワードを追加する方法を見つけようとしていますが、個々のパスワードを確認してすぐにパスワードを追加しないことです。この Web サイトにあるクラス ファイルを使用しています。私のコードは以下のとおりです。

<!DOCTYPE html>
<html>
<head>
    <title>Website</title>
</head>
<body>
<form method="post" action="Assets/Scripts/PHP/Login.php">
    <table>
        <tr>
            <td>
                <label for="Password">Password:</label>
            </td>
            <td>
                <input type="password" name="password" placeholder="Password" id="Password" />
            </td>
        </tr>

        <tr>
            <td>

            </td>
            <td>
                <input type="submit" name="submit" value="Log In" />
            </td>
        </tr>
    </table>
</form>
</body>
</html>

ログイン.php

<?php
$Password = $_POST['password'];
$Submit = $_POST['submit'];

if(isset($Submit))
{
    if($Password != '' && $Password == 'Password')
    {
        session_start();
        $_SESSION['Login'] = 'True';
        $Login = $_SESSION['Login'];
        if(isset($Login))
        {
            header("location:../../../main.php");
        }
        else
        {
            header("location:../../../index.html");
        }
    }
    else
    {
        include("../../../MyTXT.php");
        $File = new MyTXT("../../Texts/Passwords.txt");
        foreach($File->rows as $Row)
        {
            if($Row != $Password)
            {
                $File->add_row(array($Password, "1"));
                $File->save();
            }
            else
            {

            }
        }
        echo 'The Password Is Incorrect';
        echo '<br />';
        echo '<a href="../../../index.html">Go Back</a>';
    }
}
else
{
    header("location:../../../index.html");
}

テキストファイル

Password:|:Attempts

Test:|:26

Test123:|:2

Test456:|:5
4

1 に答える 1

1

リンクのコードを使用している特定の理由はありますか? 単純なタスクの多くのコードのように見えます。

これらを試してください:

ファイルの内容を文字列に読み込みます: http://php.net/manual/en/function.file-get-contents.php

ファイルの内容を配列に読み込む: http://php.net/manual/en/function.file.php

ファイルに間違ったパスワードが含まれているため、パスワードが正しいかどうかを確認する方法はまだ正確にはわかりませんが、ファイル内の文字列を確認する方法の簡単な例 (v クイック ..):

$strPassword = '123test';
$strFilename = 'pass.txt';
$strFileContents = file_get_contents($strFilename);

if(strpos($strFileContents, $strPassword)) 
  {
   //$strPassword is there, log them in/whatever
  }
else
  {
    //password not there
  }

ただし、そのサイトからそのスクリプトを使用する必要がある場合は、ダウンロードに使用方法の例があります。それらを調べて、それらを使用してコードを作成する必要があります。行き詰まっている場合は、具体的な質問をしてください。

于 2013-08-28T01:00:51.343 に答える