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

PHPMailer:如何在foreach循环中排除frc-captcha-solution输入字段

修改方案

只需在遍历POST字段的循环中加入判断,匹配到验证码隐藏字段时直接跳过即可,修改后的代码如下:

private function compose_mail($post)
{
    $content = "以下内容来自联系表单提交:\n\n";
    foreach($post as $name=>$value)
    {
        // 跳过FriendlyCaptcha验证码字段
        if ($name === 'frc-captcha-solution') {
            continue;
        }
        $content .= ucwords($name).": \t";
        $content .= "$value\n\n";
    }
    $this->mailer->Body  = $content;
}

如果后续需要排除更多隐藏字段,可以改用数组批量判断的写法,扩展性更强:

private function compose_mail($post)
{
    $content = "以下内容来自联系表单提交:\n\n";
    // 需排除的字段列表,新增排除项直接加入数组即可
    $excludeFields = [
        'frc-captcha-solution'
    ];
    foreach($post as $name=>$value)
    {
        if (in_array($name, $excludeFields)) {
            continue;
        }
        $content .= ucwords($name).": \t";
        $content .= "$value\n\n";
    }
    $this->mailer->Body  = $content;
}

以上修改只会过滤邮件正文的输出,不会影响验证码的校验逻辑,提交的验证码字段依然可以正常读取验证。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 05:06:05