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

Ajax发送HTML内容至PHP发邮件时a标签出现反斜杠问题求助

问题根源

你当前使用的是WordPress开发框架,WordPress核心默认会对所有通过常规POST/GET请求传入的参数自动添加转义斜杠,用来转义参数中的单引号、双引号,避免潜在的SQL注入风险。你直接取用$_POST['mailbody']时,a标签属性前后的引号已经被自动加上了反斜杠,插入邮件模板后就会破坏a标签的正常结构,导致链接无法点击。

解决方案

在PHP端接收到mailbody参数后,先移除WordPress自动添加的转义斜杠即可,推荐使用WordPress原生的移除转义函数,兼容性更好:

// 把原代码 $mailbody = $_POST['mailbody']; 修改为以下代码
$mailbody = wp_unslash($_POST['mailbody']);

也可以使用PHP原生函数实现相同效果:

$mailbody = stripslashes($_POST['mailbody']);

补充排查方向

如果修改后问题仍存在,可以按以下顺序排查:

  • 检查服务器PHP配置是否开启了magic_quotes_gpc,如果开启请关闭该配置,避免出现二次转义的情况
  • 检查ACF字段的输出设置,确认ACF输出占位符内容时没有额外做转义处理
  • 可以在替换模板占位符前,把$mailbody的原始内容写入本地日志,确认转义斜杠是否是在替换占位符、发送邮件的环节额外添加的

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 08:36:06