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

mail.php无法正确发送表单数据,求助修改及跳转设置

解决方案

第一步:先修正HTML表单的两处错误

  • 所有type="test"的输入框要改成type="text",否则浏览器无法识别为文本输入控件
  • 表单内部嵌套了多余的<form action="">标签,会导致提交逻辑异常,必须删除

修正后的HTML表单代码:

<form action="mail.php" method="POST">
<p class="bodytextgrey">
Contact Name:<br /><input type="text" name="contact name" size="50" /><br />
Firm Name:<br /><input type="text" name="firm name" /><br /><br />
E-mail: (Please enter the email address you would like the document is to be sent to)<br /> 
<input type="text" name="email" size="50" /><br />
Job Number:<br /><input type="text" name="job number" /><br /><br />
Document you require:<br /><select name="Document you require">
<option value="Data Sheet">Data Sheet</option>
</select><br/ ><br />
Discount code:<br /><input type="text" name="Discount code" size="20" /><br /><br />
<input type="submit" value="Send"><input type="reset" value="Clear">
</form>

第二步:修改mail.php代码

修改后的代码会获取所有表单字段、构建完整邮件内容,发送成功后自动跳转到thank you.html页面:

<?php
// 获取所有表单字段(注意表单name带空格,$_POST的键需要完全对应)
$contactName = $_POST['contact name'] ?? '';
$firmName = $_POST['firm name'] ?? '';
$email = $_POST['email'] ?? '';
$jobNumber = $_POST['job number'] ?? '';
$document = $_POST['Document you require'] ?? '';
$discountCode = $_POST['Discount code'] ?? '';

// 构建邮件内容,按字段分行显示
$formcontent = "Contact Name: $contactName\n"
             . "Firm Name: $firmName\n"
             . "Email: $email\n"
             . "Job Number: $jobNumber\n"
             . "Document Required: $document\n"
             . "Discount Code: $discountCode";

$recipient = "你的收件邮箱"; // 替换为实际收件邮箱地址
$subject = "网站联系表单提交";
// 完善邮件头,支持回复和UTF-8编码
$mailheader = "From: $email\r\n"
            . "Reply-To: $email\r\n"
            . "Content-Type: text/plain; charset=utf-8\r\n";

// 发送邮件并处理跳转
if(mail($recipient, $subject, $formcontent, $mailheader)){
    // 发送成功,跳转感谢页面
    header("Location: thank you.html");
    exit;
} else {
    // 发送失败时的提示,可根据需求改为跳转错误页
    echo "邮件发送失败,请稍后重试";
}
?>

关键说明

  • ?? ''用于避免字段未提交时出现PHP警告(需PHP 7及以上版本支持)
  • 邮件头添加Reply-To可直接回复提交者邮箱,charset=utf-8确保中文内容显示正常
  • 跳转必须在任何输出(如echo)之前执行,因此代码中未使用原有的文本提示

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 18:50:26