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

PHP表单提交后如何跳转至aboutus页面?表单可正常发送邮件

解决PHP表单提交后跳转至aboutus页面的问题

你的代码目前存在几个问题导致跳转失效,同时还有未定义变量的报错风险,以下是修正后的两种实现方案:


方案1:带提示弹窗的JavaScript跳转

适合需要给用户反馈后再跳转的场景,同时修复原代码中未定义变量的问题:

<?php
if (isset($_POST['submit'])) {
    $to = "myemailhere@mail.com";
    $from = $_POST['email'];
    $name = $_POST['name'];
    $phone = $_POST['phone'];
    $email = $_POST['email'];
    $userSubject = $_POST['subject']; // 保留用户提交的主题
    $subject = "Form submission";
    
    // 构建给管理员的消息内容
    $message = "Query Request from:" . "\n\n" 
        . "Name : " . $name . "\n\n" 
        . "Email : " . $email . "\n\n" 
        . "Number : " . $phone . "\n\n" 
        . "Subject : " . $userSubject . "\n\n" 
        . "Message : " . $_POST['message'];
    
    $headers = "From:" . $from;
    $headers2 = "From:" . $to;
    
    // 发送邮件给管理员
    mail($to, $subject, $message, $headers);
    
    // 构建给用户的回复内容(原代码中$subject2、$message2未定义)
    $subject2 = "感谢您的咨询";
    $message2 = "您好 " . $name . ",\n\n我们已收到您的咨询,会尽快与您联系。\n\n您提交的主题:" . $userSubject;
    // 发送回复邮件给用户
    mail($from, $subject2, $message2, $headers2);
    
    // 弹窗提示后跳转至aboutus页面
    echo '<script type="text/javascript">';
    echo 'alert("邮件已发送,感谢您的咨询,我们会尽快与您联系。");';
    echo 'window.location.href = "/aboutus.php";'; // 替换为你的aboutus页面实际路径
    echo '</script>';
    exit; // 确保后续代码不再执行
}
?>

方案2:无弹窗的PHP Header跳转(更高效)

适合不需要弹窗提示,直接跳转的场景,注意必须在任何HTML输出之前执行这段代码:

<?php
if (isset($_POST['submit'])) {
    $to = "myemailhere@mail.com";
    $from = $_POST['email'];
    $name = $_POST['name'];
    $phone = $_POST['phone'];
    $email = $_POST['email'];
    $userSubject = $_POST['subject'];
    $subject = "Form submission";
    
    $message = "Query Request from:" . "\n\n" 
        . "Name : " . $name . "\n\n" 
        . "Email : " . $email . "\n\n" 
        . "Number : " . $phone . "\n\n" 
        . "Subject : " . $userSubject . "\n\n" 
        . "Message : " . $_POST['message'];
    
    $headers = "From:" . $from;
    $headers2 = "From:" . $to;
    
    mail($to, $subject, $message, $headers);
    
    $subject2 = "感谢您的咨询";
    $message2 = "您好 " . $name . ",\n\n我们已收到您的咨询,会尽快与您联系。";
    mail($from, $subject2, $message2, $headers2);
    
    // 直接跳转至aboutus页面,需确保此代码前无任何输出(包括空格、空行)
    header("Location: /aboutus.php");
    exit;
}
?>

关键注意点

  1. 替换/aboutus.php为你项目中aboutus页面的实际路径(比如如果是根目录下的aboutus.html就写/aboutus.html)
  2. 使用Header跳转时,PHP代码必须放在页面最顶部,不能有任何HTML代码、空格或空行在这段代码之前,否则会触发"headers already sent"错误
  3. 原代码中$subject2和$message2未定义,必须补充才能让用户回复邮件正常发送
  4. 加上exit或die()确保跳转后不再执行后续代码

内容的提问来源于stack exchange,提问作者Reacting

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 09:13:13