1

6〜25文字のパスワードが必要なフォームで作業しています。ユーザー名とフルネームは25文字未満である必要があります。ユーザー名とフルネームの部分は正常に機能しますが、10文字の長さのパスワードを入力すると、6未満であるかのようにエラーコードがエコーされます。これで何が問題になっていますか?

コードを見て、私を助けてください:問題は//パスワードの長さを確認するとしてコメントされた領域内にあります。ありがとうeverone

phpコードは次のとおりです。

    <?php
    echo "<h1>Register</h1>";

    $submit = filter_input(INPUT_POST, 'submit');
    //form data
    $fullname = strip_tags (filter_input(INPUT_POST, 'fullname'));
    $username = strip_tags (filter_input(INPUT_POST, 'username'));
    $password = strip_tags(filter_input(INPUT_POST, 'password'));
    $repeatpassword = strip_tags(filter_input(INPUT_POST, 'repeatpassword'));
    $date = date("Y-m-d");

    if ($submit)
    {
    //check for existence
       if($fullname&&$username&&$password&&$repeatpassword)
       {
       $password = md5($password);
       $repeatpassword = md5($repeatpassword);

    if ($password==$repeatpassword)
    {
    //check char length of username and fullname
        if (strlen($username)>25||strlen($fullname)>25)
        {
        echo "Length of username or full name is too long!";
        }
        else
        {
        //check password length 
            if (strlen ($password)>25 || strlen ($password)<6)
            {
            echo "Password must be between 6 and 25 characters";
            }
            else
            {
            //register user 
            }


        }





    }
    else echo "Your passwords do not match";


}
else echo "Please fill in <b>all</b> fields!";


    }


   ?>`

htmlは次のとおりです。

    <html>

    <form action='register.php' method='POST'>
<table>
    <tr>
        <td>
        Your full name:
        </td>
        <td>
        <input type='text' name='fullname'>
        </td>

    </tr>

    <tr>
        <td>
        choose a username:
        </td>
        <td>
        <input type='text' name='username'>
        </td>

    </tr>


    <tr>
        <td>
        Choose a password:
        </td> 
        <td>
        <input type='password' name='password'>
        </td>

    </tr>

    <tr>
        <td>
        Repeat your password:
        </td> 
        <td>
        <input type='password' name='repeatpassword'>
        </td>

    </tr>

<table>
<p>
<input type='submit' name='submit' value='Register'>

4

3 に答える 3

1

パスワードでMD5を実行し、比較する前にパスワードを繰り返します。MD5を実行する前に、比較と長さのチェックを行ってください。

于 2012-04-08T20:32:51.750 に答える
1

ここで、パスワードをMD5の合計で上書きします。

$password = md5($password);

これらの異なる値に異なる変数名を使用することをお勧めします。

$password_md5 = md5($password);

変数に適切な名前を付けると、混乱がなくなり、エラーのリスクが軽減されます。

于 2012-04-08T20:32:57.077 に答える
0

MD5を終了し、代わりにWhirlpoolを使用しないのはなぜですか?

$password_wp  = hash('whirlpool', $password);

まだ疑問がありますか?もしそうなら、Stackoverflowでのあなたの答えはすでに答えられています:

どちらがより安全なmd5またはワールプール(ハッシュ)であり、なぜですか?

{詳細}

http://md5-sha-whirlpool.reviews.r-tt.com

于 2014-06-28T06:17:31.123 に答える