1

目前正在将电子邮件收件人动态添加到我的Craft Contact Form. 我当前的设置完全遵循联系表 github 上的说明。

在我的表单中,我添加了以下行:

<input type="hidden" name="toEmail" value="{{ 'me@example.com'|hash }}" />

config/contact-form.php我添加了以下内容:

<?php

$config = [];
$request = Craft::$app->request;

if (
    !$request->getIsConsoleRequest() &&
    ($toEmail = $request->getValidatedBodyParam('toEmail')) !== null
) {
    $config['toEmail'] = $toEmail;
}

return $config;

我得到的错误是:

HTTP 400 - Request contained an invalid body param

toEmail领域正在进入contact-form.php它似乎只是验证失败?每当我将输入字段的名称更改为name="toEmailxxx"它只是将其正确发送到 CMS 设置中设置的电子邮件时。

我该如何解决这个问题?

4

1 回答 1

1

我想这就是你要找的东西:

然后从您的craft/config/contact-form.php配置文件中,您需要添加一些逻辑:

<?php
namespace Craft;

$toEmail = craft()->request->getPost('toEmail');
$toEmail = craft()->security->validateData($toEmail);

return array(
    'toEmail' => ($toEmail ?: null),
    //.....
于 2019-11-22T08:35:47.557 回答