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

PHP联系表单AJAX提交后JS页面重定向实现方案

AJAX提交联系表单(带reCAPTCHA验证+PHP发信)实现

这段PHP代码可将表单内容发送至预设的收件人邮箱。在脚本标注“DO SOMETHING AFTER FORM SUBMISSION”的位置插入表单提交后的处理逻辑(例如JS页面跳转),经测试该方案可正常运行。


前端AJAX提交逻辑

<!-- (B) AJAX 提交模块 -->
<script>
function doajax () {
 // (B1) 获取表单数据
 var data = new FormData(document.getElementById("cform"));
 // 附加reCAPTCHA验证响应参数
 data.append("g-recaptcha-response", grecaptcha.getResponse());

 // (B2) 发起AJAX请求
 fetch("process.php", { method: "POST", body: data })
 .then((res) => { 
  alert('消息已发送'); 
  window.location.href = "index.php"; 
 })
 return false;
}
</script>

表单HTML结构

<form id="cform" method="post" onsubmit="return doajax();">
<input type="text" name="name" required/>
<input type="email" name="email" required/>
<textarea name="message" required></textarea>

<div class="g-recaptcha" data-sitekey="--- 替换为你的reCAPTCHA站点KEY ---"></div>

<input type="submit" id="submit" value="提交"/>
</form>

后端发信处理脚本 process.php

<?php
// (B) 校验reCAPTCHA有效性
$secret = "--- 替换为你的reCAPTCHA服务端密钥 ---"; 
$url = "https://www.google.com/recaptcha/api/siteverify?secret=$secret&response=".$_POST["g-recaptcha-response"];
$verify = json_decode(file_get_contents($url));
if (!$verify->success) { $error = "验证码无效"; }

// (C) 构造并发送邮件
$mailTo = "me@gmail.com"; // 替换为实际收件邮箱
$mailSubject = "联系表单新提交";
$mailBody = "";
 
foreach ($_POST as $k=>$v) {
 if ($k != "g-recaptcha-response") { 
  $mailBody .= "$k: $v\r\n"; 
 }
}

if (!@mail($mailTo, $mailSubject, $mailBody)) { 
 $error = "邮件发送失败";
}
?>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 01:48:16