嗨,请原谅新手问题,因为我还在学习PHP。我试图做一个基本的表格验证。我试图在验证时发现任何错误,在表单字段中以红色显示。
如何在登录表单中添加登录表单验证错误,错误消息不会出现在loginform
中
<form action="test.php" method="POST" >
<div class="logintable ">
<table class="applyfont" style="border: 1px solid lightseagreen">
<tbody>
<tr id="login1">
<td class="applyfontbold"><b>Login </b></td>
</tr>
<tr>
<td style="padding-right:10px;">
<input type="text" name="name" value="" placeholder="Username or Email" id="uname">
<span class="error">* <?php echo $nameErr;?></span>
</td>
</tr>
<tr>
<td>
<input type="password" name="password" value="" placeholder="Password" id="password">
<span class="error">* <?php echo $passeErr;?></span>
</td>
</tr>
<tr>
<td>
<p class="submit"><input type="submit" name="save" value="Submit"> </p>
</td>
</tr>
<tr>
<td>
<div class="login-help applyfontlighter">
<p>Forgot your password? <span id="footer"><u style="color:red;"><a href="#">Click here to reset it.</a></u></span></p>
</div>
<p id="new"><button type="button" class="btn btn-default btn-xs" >New Registers</button></p>
</td>
</tr>
</tbody>
</table>
</div>
</form>
<?php
$nameErr = "";
$passErr = "";
$x = "typepass";
if (isset($_POST['save'])) {
if (empty($_POST['name'])) {
$nameErr .= "Name is required";
} else {
$name = $_POST['name'];
}
if (empty($_POST['password'])) {
$passeErr .= "password is required";
} elseif ($_POST['password'] !== $x) {
$passeErr .= "password doesn't match";
} else {
$password = $_POST['password'];
}
echo "Username :" . " " . $name . "<br>" . "Password :" . " " . $password;
}
?>
答案 0 :(得分:0)
使用当前代码,当出现错误时,您将设置2个变量:
$passeErr
$nameErr
您可以在登录表单中添加新的html标记,例如
<span class="error"></span>
在这个范围内,您可以使用php查看是否设置了变量。如果他们是你显示他们。如果他们不是你什么都不这样做:
您可以使用isset
。在您的示例中,您尝试始终回显错误。即使在登录前未设置它们也会产生警告。
密码错误
<span class="error">
if(isset($passeErr)){
echo $passeErr;
}
</span>
名称错误
<span class="error">
if(isset($nameErr)){
echo $nameErr;
}
</span>
现在确保您在表单上方进行表单验证,它应该可以正常工作!
答案 1 :(得分:0)
<?php
$x = "typepass";
if (isset(trim($_POST['save']))) {
if (empty($_POST['name'])) {
$nameErr = "Name is required";
} else {
$name = $_POST['name'];
}
if (empty(trim($_POST['password']))) {
$passeErr = "password is required";
} elseif ($_POST['password'] !== $x) {
$passeErr = "password doesn't match";
} else {
$password = $_POST['password'];
}
if(isset($nameErr)||(isset($passErr)))
{
echo $nameErr . "<br>" .$passErr;
}
else // no error
{
echo "Username :" . " " . $name . "<br>" . "Password :" . " " . $password;
}
}
?>