我试图创建一个可以检查登录字段并验证用户名和密码的php文件(login.php)。目前,它只是使用正则表达式来检查用户名。以下是我的代码。我无法触发第二个else子句,看起来isset和!empty总是如此,即使我看到它们在视觉上是空的,就像在刷新页面之后立即看到的那样。isset和!empty总是为登录字段返回true
<?php
if (isset($_POST['login']) && !empty($_POST['login'])) {
if (preg_match('/^[a-z0-9]{6,15}$/i', $_POST['username'])) {
echo 'set';
}
else {
echo 'wrong';
}
} else {
echo 'required field';
}
?>
<div id="login"> <!-- Login field with link to registration -->
<form method="POST" action="login.php">
<Legend>Login</Legend>
Username <input type="text" name="username"/>
Password <input type="password" name="password"/>
<input type="submit" name="login">
<div id="register">
<a href="registration.html">Not a member? Click here to register!</a>
</div>
</form>
</div>
并且'var_dump($ _ POST ['login'])'显示什么? –
'isset'和'empty'有点矫枉过正[看手册](http://php.net/manual/en/function.empty.php) – RiggsFolly
看起来你似乎在重新提交表单。 –