2012-04-08 152 views
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'> 

+0

這個問題似乎是題外話,因爲它已經過時了。 – 2014-10-15 14:39:01

回答

2

你與它的MD5校驗這裏覆蓋的密碼:

$password = md5($password); 

我建議使用這些不同的價值觀不同的變量名:

$password_md5 = md5($password); 

命名變量appropraitely將消除混亂並降低錯誤的風險。

+0

然後我會發送變量$ password_md5到我的數據庫正確嗎? – 2012-04-08 20:42:21

+0

正確;你也可以把你的密碼的一部分移到你註冊用戶的地方;因爲您已經檢查過它與'$ password'匹配,因此再次在'$ repeatpassword'上使用'md5'沒有意義。 – stealthyninja 2012-04-08 20:44:05

+0

我把$ password = md5($ password);剛纔//註冊用戶。但是,我應該使用$ password = md5($ password)還是$ password_md5 = md5($ password)?哪個更友好,不太可能導致未來的問題? – 2012-04-08 20:54:08

1

您對您的密碼運行MD5和你比較之前重複密碼。在對它們運行MD5之前進行比較和長度檢查。