我在使用PHP进行表单验证方面遇到了一些问题。我在google上做了一些研究,问题是我似乎无法在表单操作中使用<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>
登录后重定向用户,它会继续停留在index.php页面而不是转到其他页面。
表格
<?php
$usernameErr = $passwordErr = "";
$username = $password = "";
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
if (empty($_POST["username"]))
{$usernameErr = "Username is required.";}
else
{$username =($_POST["username"]);}
if (empty($_POST["password"]))
{$passwordErr = "Password is required.";}
else
{$password =($_POST["password"]);}
}
?>
<body>
<form id="login" name="login" method="post" action="checklogin.php">
<table>
<tr>
<td>Username</td>
<td></td>
<td><input name="username" type="text" id="username"><span class="error"><?php echo $usernameErr;?></span></td>
</tr>
<tr>
<td>Password</td>
<td></td>
<td><input name="password" type="password" id="password"><span class="error"><?php echo $passwordErr;?></span></td>
</tr>
<tr>
<td colspan="3" align="center"><input type="submit" name="submit" value="Login"></td>
</tr>
</table>
</form>
或者我把它放在错误的页面上?我应该把它放在checklogin.php上吗?
答案 0 :(得分:0)
您未按echo
声明重定向。使用header()
进行重定向。header("Location:index.php");
有关标题的详细信息,请访问link。
答案 1 :(得分:0)
表单验证逻辑确实属于checklogin.php
。您已指出<form>
将其数据发送至checklogin.php
,但您正在index.php
进行实际验证。
答案 2 :(得分:0)
叶。你需要把它放在checklogin.php页面。
也可以进行更改
if (isset($_REQUEST['submit']))
{
if (empty($_POST["username"]))
{
echo $usernameErr = "Username is required.";}
elseif (empty($_POST["password"]))
{
echo $passwordErr = "Password is required.";}
else
{
echo $password =$_POST["password"];
echo $username =$_POST["username"];}
}
?>