You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

表单提交后重定向失效问题求助(附PHP实现代码)

联系表单提交后不跳转的排查与修复

邮件能成功发送但提交后停留在表单页,核心原因通常是跳转指令未生效,以下是针对性的排查和修复步骤:

1. 排查PHP输出干扰

header() 必须在任何内容输出到浏览器前调用,哪怕是<?php标签前的一个空格、换行,都会导致跳转失败。

  • 检查脚本最开头:确保第一行就是<?php,前面没有任何空白字符、HTML注释或其他输出;
  • 检查脚本中间:确认没有提前执行echo、var_dump这类输出代码。

2. 确认表单提交方式

如果前端用了AJAX异步提交表单,PHP的header()跳转对浏览器无效——因为AJAX是后台请求,不会触发页面刷新。

  • 修复方法:
    1. PHP端修改(邮件发送成功后):
      echo json_encode(['status' => 'success']);
      exit;
      
    2. 前端添加跳转逻辑(示例):
      document.querySelector('form').addEventListener('submit', function(e) {
          e.preventDefault();
          fetch('你的PHP脚本路径', {
              method: 'POST',
              body: new FormData(this)
          }).then(res => res.json()).then(data => {
              if (data.status === 'success') {
                  window.location.href = 'success.html';
              } else {
                  window.location.href = 'error.php';
              }
          });
      });
      

3. 优化跳转代码

把原跳转代码替换为更严谨的写法,强制触发跳转:

// 替换原header代码
header("Location: https://scalemy.company/success.html", true, 303);
exit();
  • true覆盖可能存在的旧header,303状态码明确要求浏览器用GET方式跳转,避免重复提交问题。

4. 查看错误日志

检查服务器的PHP错误日志,或者你脚本里生成的error_log文件,如果有类似Headers already sent的警告,直接定位到输出干扰的位置即可。


内容的提问来源于stack exchange,提问作者Hervé Guillot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 04:36:00