PENDAFTARA-6ren">
gpt4 book ai didi

php - 显示错误,即使尚未提交

转载 作者:行者123 更新时间:2023-12-03 09:06:39 25 4
gpt4 key购买 nike

我只是加载页面,但已显示错误

<?php

$nameErr = $emailErr = $idErr = $passwordErr = "";
$name = $email = $id = $password = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["name"])) {
$nameErr = "Name is required";
} else {
$name = test_input($_POST["name"]);
// check if name only contains letters and whitespace
if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
$nameErr = "Only letters and white space allowed";
}
}

if (empty($_POST["email"])) {
$emailErr = "Email is required";
} else {
$email = test_input($_POST["email"]);
// check if e-mail address is well-formed
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailErr = "Invalid email format";
}
}

if (empty($_POST["id"])) {
$genderErr = "Matric number is required";
} else {
$website = test_input($_POST["id"]);

if (!preg_match("/^[0-9].*$/",$id)){
$idErr = "Only numbers allowed"; }
}
}

if (empty($_POST["password"])) {
$passwordErr = "Password is required";
} else {
$password = test_input($_POST["password"]);
// check if name only contains letters and whitespace
if (!preg_match("/^[a-zA-Z0-9]+$/",$password)) {
$nameErr = "Special characters are not allowed";
}
}

function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Pendaftaran Kali Pertama</title>
<style type="text/css">
<!--
.style1 {
color: #FFCC00;
font-weight: bold;

}
.error{ color:#FFCC00}
-->
</style>

</head>

<body>
<div align="center">
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">

<table width="62%" border="0" cellpadding="2" cellspacing="2">
<tr>
<td height="35" colspan="4" bgcolor="#660066"><div align="center" class="style1">PENDAFTARAN KALI PERTAMA </div></td>
</tr>
<tr>
<td width="33%"><div align="right"><strong>Nama </strong></div></td>
<td width="5%"><div align="center"><strong>:</strong></div></td>
<td width="62%"><input name="name" type="text" size="50" /><span class="error">* <?php echo $nameErr;?></span></td>

</tr>
<tr>
<td><div align="right"><strong>No. Pelajar </strong></div></td>
<td><div align="center"><strong>:</strong></div></td>
<td><input name="id" type="text" size="50" maxlength="10" /><span class="error">* <?php echo $idErr;?></span></td>

</tr>
<tr>
<td><div align="right"><strong>Kata Laluan(8 aksara sahaja)</strong></div></td>
<td><div align="center"><strong>:</strong></div></td>
<td><input name="password" type="text" size="50" maxlength="8" /><span class="error">* <?php echo $passwordErr;?></span></td>

</tr>
<tr>
<td><div align="right"><strong>Emel</strong></div></td>
<td><div align="center"><strong>:</strong></div></td>
<td><input name="email" type="text" size="50" /><span class="error">* <?php echo $emailErr;?></span></td>

</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td><input type="submit" value="Submit"/></td>

</tr>
</table>
</form>
</div>
</body>
</html>


它完全没有错误,但是当我加载页面(提交按钮甚至没有点击)时,密码错误已经显示。其他字段错误工作正常。

最佳答案

您的密码块位于POST块之外,这就是为什么即使在提交表单之前也始终设置$passwordErr的原因。

if (empty($_POST["password"])) {
$passwordErr = "Password is required";
} else {
$password = test_input($_POST["password"]);
// check if name only contains letters and whitespace
if (!preg_match("/^[a-zA-Z0-9]+$/",$password)) {
$passwordErr = "Special characters are not allowed";
}
}

将其放在 if ($_SERVER["REQUEST_METHOD"] == "POST") {块中

同样在您的代码中 $nameErr = "Special characters are not allowed";是错误的。您必须像在上面的代码中一样将错误分配给$ passwordErr。

关于php - 显示错误,即使尚未提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30761779/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com