繁体   English   中英

第一次加载页面后如何避免警报

[英]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

所以概述是:

  1. 使用$('#yourFormID').submit(function(){})捕获表单提交过程

  2. 在该函数内,执行您的字段验证

  3. 如果字段未通过验证,则显示一条消息并将控制权返回给用户

  4. 如果所有字段都验证正常,则什么都不做 - 表单将完成提交,就好像根本没有中断一样。

这是另一个问题/答案,演示了如何做到这一点。

如何将用户直接定向到表单

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM