我一直在尝试使用php窗体来更改密码。如果我将密码字段留空并仍然单击提交,它会将密码更新为空值。PHP窗体更新为空值
// define variables and set to empty values
$mypassword = $passwordErr = $fid = $fidErr = "";
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
if(empty($_POST["fid"]))
{
$fidErr="ID is required";
}
else
{
$fid=test_input($_POST["fid"]);
}
if(empty($_POST["mypassword"]))
{
$passwordErr="Password is required";
}
else
{
$mypassword=test_input($_POST["mypassword"]);
}
}
else
{
echo "plz enter details";
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
<body>
<p><span class="error">* required field.</span></p>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>">
<br>Change password<br>
ID:
<input type="number" name="fid" value="<?php echo $fid; ?>">
<span class="error">*<?php echo $fidErr ?></span>
<br>
Password:
<input type="password" name="mypassword" value="<?php echo $mypassword; ?>">
<span class="error">*<?php echo $passwordErr ?></span>
<br>
<input type="submit" name="submit" value="Submit">
</form>
<?php
echo "<h2>Your Input:</h2>";
echo $fid;
echo "<br>";
echo $mypassword;
$sql = "update faculty set passwd='$mypassword' where fid=$fid";
$result=$conn->query($sql);
if($result==TRUE)
{
echo "<br> $fid password updated successfully";
}
else
{
echo "error".$conn->error();
}
即使我已经把表单验证代码,它仍然更新值为空。
即使您的输入为空,您也总是“更新”它。 – Federkun
为什么你在下面写代码,在成功条件下写更新代码 – rahulsm
认证系统*真的*我的意思*真的*不是你应该从头开发的系统。使用一个久经考验的 – e4c5