[英]How to avoid the alert after the first time loading the page
我想检查表单是否正确填写,但在加载页面后出现警报。 我猜站点刷新是提交登录按钮。
我尝试检查传入的数据,如果它们是错误的,它应该显示警报。
<?php
$alert = "";
if ($_POST['username'] == null || $_POST['password'] == null){
$alert = "Please fill in all fields!";
}
if ($alert){
echo $alert;
}
?>
<form method="POST" action=""> <!-- reloads this page -->
<input type="text" name="username"/>
<input type="password" name="password"/>
<button type="submit" name="login">Login</button>
</form>
如果我打开页面,警报会立即出现。 我应该如何检查,第一次加载后没有出现警报。
IF 语句很好,所以您的问题出在会话或缓存中。
如果关闭浏览器,您可以销毁会话,但这可能需要一些时间来销毁会话,因此您可以在浏览器设置中删除缓存、cookie 等。
但是你也可以使用session_destroy();
在 php 中销毁所有 POST 或 GET 变量。
我不想建议 javascript 作为解决方案,但在这种情况下,javascript 是最好的解决方案。
使用 javascript,您可以中断表单提交过程 - 做一些事情(例如验证表单字段),然后return false
(取消提交)或什么都不做(表单提交将继续)。 但巴尔马尔对正在发生的事情的解释是完全正确的。 (他当然是:是Barmar )
所以概述是:
使用$('#yourFormID').submit(function(){})
捕获表单提交过程
在该函数内,执行您的字段验证
如果字段未通过验证,则显示一条消息并将控制权返回给用户
如果所有字段都验证正常,则什么都不做 - 表单将完成提交,就好像根本没有中断一样。
这是另一个问题/答案,演示了如何做到这一点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.