2013-09-23 73 views
0

這是我的代碼,它似乎工作正常,但它看起來不正確。 我知道我很容易注射。只是想知道這個 是比較兩個密碼的最好方法嗎?比較兩個密碼PHP

if (empty($_POST['password'])) { 
    $errors[] = "Please enter a password"; 
} else { 
    if ($_POST['password'] != $_POST['password1']) { 
     $errors[] = "Your password did not match the confirmed password"; 
    } else { 
     $p = $_POST['password']; 
    } 
} 
+0

這是什麼問題? – Neal

+4

上述代碼不容易受到任何注入,因爲它不會與數據庫交互或將用戶輸入輸出到屏幕。 (我們看不到的代碼可能是另一回事) –

+1

你也可以試試'!=='。 – hjpotter92

回答

5

你的代碼是正確的,我只是把它寫有點不同:

if (empty($_POST['password'])) { 
    $errors[] = "Please enter a password"; 
} elseif($_POST['password'] !== $_POST['password1']) { 
    $errors[] = "Your password did not match the confirmed password"; 
} else { 
    $p = $_POST['password']; 
} 
+0

這就是我正在尋找的答案腳本末尾有兩個右括號只是看起來不正確。 – user1829823

+0

@ user1829823你的代碼很好,只是縮進讓它看起來很奇怪。我爲你輕輕一推。 – Sammitch

+0

@Sammitch它仍然有點不同。 – Neal

0

我建議你必須在一開始就同時檢查$_POST['password']$_POST['password1']

if (!empty($_POST['password']) && !empty($_POST['password1'])) { 
     if (strcmp($_POST['password'], $_POST['password1']) === 0) { 
      $p = $_POST['password']; 
     } else { 
      $errors[] = "Your password did not match the confirmed password"; 
     } 
    } else { 
     $errors[] = "Please enter a password"; 
    }