我創建了一個帶有確認密碼的註冊表單,但我的密碼確認無效。我想在這裏輸入密碼不匹配。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>
你有:'if($ _ POST [「password」] == $ _POST [「confirm_password」])$ passwordErr =「*密碼不匹配」;',應該是'!==' – billyonecan
As @億萬美元說,這應該是如果($ _ POST [「密碼」]!= $ _POST [「confirm_password」])。 –
@billyonecan謝謝你的工作 – Geetha