2015-11-06 44 views
1

嗨我正在創建一個註冊表單並使用PHP我想檢查用戶輸入是否有效。我可以檢查電子郵件,用戶名,但我無法檢查密碼字段。使用PHP驗證類型密碼輸入

我的PHP代碼:

<?php 

if(isset($_POST['registerButton'])){ 



if(isset($_POST['regEmail'])){ 
     $regEmail = $_POST['regEmail']; 
    } 
    else{ 
     $regEmailError = 'Please Fill in Email field'; 
    } 

    if(isset($_POST['regUsername'])){ 
     $regUsername = $_POST['regUsername']; 
    } 
    else{ 
     $regUsernameError = 'Please Fill in Username field'; 
    } 

    if(($_POST['regPassword']) and ($_POST['regPassword2'])){ 


     if(isset($_POST['regPassword']) == isset($_POST['regPassword2'])){ 
      $regPassword = $_POST['regPassword']; 
     } 
     else{ 
      $regPasswordError = 'Passwords does not match!'; 
     } 
    } 
    else{ 
     $regPasswordError = 'Please Fill in Password fields'; 
    } 
} 

?> 

我的HTML代碼:

<input class="form-control " name="regEmail" type="email" placeholder="Email" required autofocus> 

<input class="form-control " name="regUsername" type="text" placeholder="Username" required > 

<input class="form-control " name"regPassword" type="password" placeholder="Password" required > 

<input class="form-control " name="regPassword2" type="password" placeholder="Confirm Password" required> 

我已經意識到的是,如果我下面的行前放置一個echo "Success";我可以看到打印,但如果我把echo "Success;後面的行我看不到輸出,所以我在這裏做錯了什麼,不能看出來,一切似乎都很好。任何幫助非常感謝。

if(($_POST['regPassword']) and ($_POST['regPassword2'])){ 

編輯:如果我更換完整如果被檢查密碼字段聲明:

if(isset($_POST['regPassword'])){ 
echo "Hello World"; 
} 

它仍然沒有顯示任何內容..

編輯2:我剛剛解決了問題是,我錯過了名稱值後的HTML代碼中的「=」

+0

是你確定,你使用'

'然後點擊提交按鈕?按下enter不要設置'registerButton'的值。我寧願添加一個表示提交表單的隱藏輸入字段 – Philipp

回答

1

更改爲:

if (isset($_POST['regPassword']) && isset($_POST['regPassword2'])) { 
    if ($_POST['regPassword'] == $_POST['regPassword2']){ 
     $regPassword = $_POST['regPassword']; 
    } else { 
     $regPasswordError = 'Passwords does not match!'; 
    } 
} 
+0

它也行不通,也許我面臨一個錯誤? – Licentia

+0

我更新了答案。 –

0

您當前比較兩個isset值,它們始終爲真,因爲它們在之前的條件中爲真。 只需卸下isset語句來比較實際值

if(($_POST['regPassword']) and ($_POST['regPassword2'])){ 
    if($_POST['regPassword'] == $_POST['regPassword2']){ 
     $regPassword = $_POST['regPassword']; 
    } 
    else{ 
     $regPasswordError = 'Passwords does not match!'; 
    } 
} 
else{ 
    $regPasswordError = 'Please Fill in Password fields'; 
} 

,你也應該考慮一個輔助函數,它帶走了複雜

function httppost($name) { 
    return isset($_POST[$name]) ? trim($_POST[$name]) : false; 
} 

這種方式,你可以只使用

$regPassword = httppost('regPassword'); 
$regPassword2 = httppost('regPassword2'); 
if($regPassword && $regPassword2){ 
    if($regPassword != $regPassword2){ 
     $regPasswordError = 'Passwords does not match!'; 
     $regPassword = false; 
    } 
} else { 
    $regPasswordError = 'Please Fill in Password fields'; 
}