2012-04-08 17 views
1

6〜25文字のパスワードが必要なフォームで作業しています。ユーザー名とフルネームは25文字未満でなければなりません。ユーザー名とフルネームの部分は問題なく動作しますが、パスワードを10文字入力すると、エラーコードが6よりも小さいかのように表示されます。何が問題なのですか?最小と最大強度の長さ

コードを見て、私を助けてください。 問題は、//パスワードの長さをチェックしてください。

<?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は次のとおりです:おかげeverone

PHPのコードがある

<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'> 

+0

この質問はそれが廃止されているので、オフトピックであるように思われます。 –

答えて

2

あなたがここにそのMD5サムとパスワードを上書き:

$password = md5($password); 

を私はこれらの異なる値に対して異なる変数名を使用することをお勧めしたい:

appropraitely混乱を削除して減少しますあなたの変数の命名
$password_md5 = md5($password); 

エラーのリスク。

+0

それから変数$ password_md5を自分のデータベースに送信しますか? –

+0

修正;パスワードを 'md5'にしてコードの部分を移動して'//ユーザを登録する 'ことができます。あなたが '$ password'にマッチしたことを既に確認しているので、' $ repeatpassword'で再び 'md5'を使う意味がありません。 – stealthyninja

+0

私は$ password = md5($ password)を置く。 //ユーザーを登録する。しかし、私は$パスワード= md5($パスワード)または$ password_md5 = md5($パスワード)を使用する必要がありますか?よりフレンドリーで、将来の問題を引き起こす可能性は低いですか? –

1

あなたのパスワードにMD5を実行し、それを比較する前にパスワードを繰り返します。 MD5を実行する前に比較と長さのチェックを行います。

関連する問題