如何修复PHP表单提交后仅刷新页面而不跳转的问题

11次阅读

如何修复PHP表单提交后仅刷新页面而不跳转的问题

php表单未设置`action`属性时,默认提交到当前url,导致`$_post[‘submit’]`始终为空,条件判断失效,页面仅刷新而无法执行重定向。

在初学php表单处理时,一个常见却容易被忽视的错误是:遗漏

标签的action属性

。你提供的代码中,

未指定action,浏览器会默认将数据提交回当前页面(即自身URL)。而你的PHP逻辑依赖if (isset($_POST[‘submit’]))来触发跳转——但按钮本身没有name=”submit”,且表单未明确指向处理脚本,因此该条件永远为false,header()重定向根本不会执行,仅表现为页面刷新。

✅ 正确做法:补全表单属性 + 修正PHP逻辑

首先,为表单添加action并确保提交按钮具备可检测的name属性:

   

然后,在 ari.php(或同页)中完善服务端逻辑:

word = $_POST['password'] ?? '';      if ($password === 'password') {         header('Location: ari.html');         exit(); // 必须调用 exit() 阻止后续代码执行     } else {         echo '

Incorrect password.

'; } } ?>

⚠️ 注意事项:

  • header()前不能有任何输出(包括空格、bom、echo),否则报“Headers already sent”错误;
  • 推荐使用$_SERVER[‘REQUEST_METHOD’]双重校验,比仅依赖isset($_POST[‘submit’])更健壮;
  • 生产环境中切勿硬编码密码,应使用password_hash()/password_verify()配合数据库验证;
  • 若逻辑写在同一文件(如index.php),action可设为””或”.”,但仍需确保无前置输出。

通过以上调整,表单将正确提交至目标脚本,PHP条件生效,成功重定向至ari.html

立即学习PHP免费学习笔记(深入)”;

text=ZqhQzanResources