我正在寻找一种方法来检查用户是否在登录脚本中输入了某些内容。我试过了
if (!empty($_POST))
但这种方法失败了。由于我是php的新手,我不确定使用什么其他干净的方法。
<?php
if ( !empty($post)){
header("Location:login.php");
echo"Invalid Username or Password";
}
?>
<html>
<head>
<title>Administrator Login Page</title>
<style type="text/css">
@import "style.css";
</style>
</head>
<body>
<h1>Administrator Login Page</h1>
</br></br></br></br></br></br></br>
<form action="admin_verify.php" method="post">
User Name:
<input type="text" name="admin_name" />
</br></br>
Password:
<input type="password" name="admin_password" />
</br></br>
<input type="submit" value="Login"/>
<input type="reset" value="Reset"/>
</form>
</body>
</html>
答案 0 :(得分:2)
您应将此代码放在admin_verify.php
而不是login.php
<?php
if ( !empty($post)){
header("Location:login.php");
exit;
}
?>
最好通过
检查所有输入的字段if( !isset($_POST['admin_name'], $_POST['admin_password'] )) {
header("Location:login.php");
exit;
}
如果要将某些消息发送回登录页面,可以在get参数中发送或使用会话
header("Location:login.php?msg=Invalid Username or Password");
exit;
答案 1 :(得分:0)
您可能希望检查此页面上的用户名和密码,而不是简单地检查表单是否已填写。如果您希望将其保留到login.php
,请将$_POST
中的内容保存到$_SESSION
。
<?php
if (!empty($_POST)){
if (strlen($_POST["admin_name"]) > 0 && strlen($_POST["admin_password"]) > 0) {
header("Location:login.php");
exit;
} else {
$not_filled = true;
}
}
?>
<html>
<head>
<title>Administrator Login Page</title>
<style type="text/css">
@import "style.css";
</style>
</head>
<body>
<h1>Administrator Login Page</h1>
</br></br></br></br></br></br></br>
<?php if ($not_filled) echo"Invalid Username or Password"; ?>
<form action="admin_verify.php" method="post">
User Name: <input type="text" name="admin_name" />
</br></br>
Password: <input type="password" name="admin_password" />
</br></br>
<input type="submit" value="Login"/>
<input type="reset" value="Reset"/>
</form>
</body>
</html>
答案 2 :(得分:0)
尝试
if((isset($_POST['admin_name']) && isset($_POST['admin_password']))
{
//INSTRUCTION
}