2014-02-12 268 views
-5

我創建了一個帶有確認密碼的註冊表單,但我的密碼確認無效。我想在這裏輸入密碼不匹配。php密碼驗證不起作用

我哪裏犯錯了?請幫我解決這個問題。

PHP驗證腳本

<?php 

$user=$country=$state=$city=$account=$email=$password=""; 
$userErr=$countryErr=$stateErr=$cityErr=$accountErr=$emailErr=$passwordErr=""; 
if ($_SERVER['REQUEST_METHOD']== "POST") { 
    $valid = true; 

    if(empty($_POST["username"])) 
    { 
     $userErr="* Username is Required"; 
     $valid=false; 
    } 
    else 
    { 
     $user=test_input($_POST["username"]); 
    } 

    if(empty($_POST["country"])) 
    { 
     $countryErr="* Country is required"; 
     $valid=false; 
    } 
    else 
    { 
     $country=test_input($_POST["country"]); 
    } 
    if(empty($_POST["state"])) 
    { 
     $stateErr="* State is required"; 
     $valid=false; 
    } 
    else 
    { 
     $state=test_input($_POST["state"]); 
    } 

    if(empty($_POST["city"])) 
    { 
     $cityErr="* City is required"; 
     $valid=false; 
    } 
    else 
    { 
     $city=test_input($_POST["city"]); 
    } 

    if(empty($_POST["accounttype"])) 
    { 
    $accountErr="*AccountType is required"; 
    $valid=false; 
    } 
    else 
    { 
     $account=test_input($_POST["accounttype"]); 
    } 
    if(empty($_POST["email"])) 
    { 
     $emailErr="* Email is required"; 
     $valid=false; 
    } 
    else 
    { 
     $email=test_input($_POST["email"]); 
    } 
    if($_POST["password"] == $_POST["confirm_password"]) 
    { 
     $passwordErr="* Password does not match"; 
     $valid=false; 
    } 
    else 
    { 
     $password=test_input($_POST["password"]); 
    } 
} 
function test_input($data) 
{ 
    $data = trim($data); 
    $data = stripslashes($data); 
    $data = htmlspecialchars($data); 
    return $data; 

} 

?> 

這是我的形式

<form action="join_form1.php" method="post" enctype="multipart/form-data"> 

    <tr> 
     <td width="163"><div align="right">User Name:</div></td> 
     <td width="409"><input name="username" type="text" value="<?php echo $user?>" /><?php echo $userErr?></td> 
    </tr> 
    <tr> 
     <td><div align="right">Country:</div></td> 
     <td><select name="country"> 
     <option value="<?php echo $country ?>"><?php echo "$country"; ?></option> 
     <option value="Australia">Australia</option> 
     <option value="Canada">Canada</option> 
     <option value="Mexico">Mexico</option> 
     <option value="United Kingdom">United Kingdom</option> 
     <option value="United States">United States</option> 
     <option value="Zimbabwe">Zimbabwe</option> 
     </select><?php echo $countryErr?></td> 
    </tr> 
    <tr> 
     <td><div align="right">State: </div></td> 
     <td><input name="state" type="text" value="<?php echo $state ?>" /><?php echo $stateErr?></td> 
    </tr> 
    <tr> 
     <td><div align="right">City: </div></td> 
     <td> 
     <input name="city" type="text" value="<?php echo "$city"; ?>" /><?php echo $cityErr?> 
     </td> 
    </tr> 
    <tr> 
     <td><div align="right">Account Type: </div></td> 
     <td><select name="accounttype"> 
     <option value="<?php echo $account ?>"></option> 
     <option value="a">Normal User</option> 
     <option value="b">Expert User</option> 
     <option value="c">Super User</option> 
     </select><?php echo $accountErr?></td> 
    </tr> 
    <tr> 
     <td><div align="right">Email: </div></td> 
     <td><input name="email" type="text" value="<?php echo $email ?>" /><?php echo $emailErr?></td> 
    </tr> 
    <tr> 
     <td><div align="right"> Password: </div></td> 
     <td><input name="password" type="password" value="<?php echo $password ?>" /><?php echo $passwordErr?><br /> 
     <font size="-2" color="#006600">(letters or numbers only, no spaces no symbols)</font></td> 
    </tr> 
    <tr> 
     <td><div align="right"> Confirm Password: </div></td> 
     <td><input name="confirm_password" type="password" value="<?php echo $password ?>" /><?php echo $passwordErr?><br /> 
     <font size="-2" color="#006600">(letters or numbers only, no spaces no symbols)</font></td> 
    </tr> 
    <tr> 
     <td><div align="right"> Captcha: </div></td> 
     <td>Add Captcha Here for security</td> 
    </tr>  
    <tr> 
     <td><div align="right"></div></td> 
     <td><input type="submit" name="Submit" value="Submit Form" /></td> 
    </tr> 
    </form> 
+0

你有:'if($ _ POST [「password」] == $ _POST [「confirm_password」])$ passwordErr =「*密碼不匹配」;',應該是'!==' – billyonecan

+0

As @億萬美元說,這應該是如果($ _ POST [「密碼」]!= $ _POST [「confirm_password」])。 –

+0

@billyonecan謝謝你的工作 – Geetha

回答

0
in your code if password and confirm password match then error is Password does not match"; 


if($_POST["password"] == $_POST["confirm_password"]) 
    { 
     $passwordErr="* Password does not match"; 
     $valid=false; 
    } 
replace it 

if($_POST["password"] != $_POST["confirm_password"]) 
{ 
     $passwordErr="* Password does not match"; 
     $valid=false; 
    } 
+0

其工作非常感謝你 – Geetha

0

條件應該是

if($_POST["password"] != $_POST["confirm_password"]) 
+0

其工作非常感謝你 – Geetha

+0

Kindly Upvote如果這有幫助... :) :) –

0

你必須檢查這樣

if($_POST["password"] != $_POST["confirm_password"]) 
    { 
     $passwordErr="* Password does not match"; 
     $valid=false; 
    } 
    else 
    { 
     $password=test_input($_POST["password"]); 
    } 
+0

非常感謝你的工作 – Geetha