【问题标题】:PHP contact form to mail.PHP 联系表格发送邮件。
【发布时间】:2012-01-20 20:04:27
【问题描述】:

以下代码:

'$mailto = $_POST['rec1'] ; //destination email'

来自处理表单内容并发送到电子邮件地址“rec1”的 php 文件。 rec1 是表单中文本字段的名称,假设用户在其中输入有效的电子邮件地址,消息将发送到输入的电子邮件地址。现在,我有多个文本字段(如下所示)

'<input name="rec1" maxlength="60" size="17" />'
'<input name="rec2" maxlength="60" size="17" />'
'<input name="rec3" maxlength="60" size="17" />'

我尝试过使用:'$mailto = $_POST['rec1, rec2, rec3']'

将消息发送到输入的多个地址,但它不起作用。如何将消息发送到在文本字段中输入的多个电子邮件地址?

【问题讨论】:

  • 如果没有根据地址白名单验证 $mailto 变量,您刚刚为垃圾邮件发送者创建了一个工具。
  • 以前做过。它已经过验证。谢谢你

标签: php forms contact


【解决方案1】:

点运算符提供字符串连接:

$_POST['rec1']. ', ' . $_POST['rec2'] . ', ' . $_POST['rec3']

【讨论】:

  • 如果你使用错误的引号将不起作用。在您的原始示例中: '$mailto = $_POST['rec1, rec2, rec3']' 您必须删除第一个和最后一个引号,即在 $mailto 之前和之后 ]。
【解决方案2】:
$mailto = $_POST['rec1'] . "," . $_POST['rec2'] . "," . $_POST['rec3'];

【讨论】:

  • 为什么不发布整个表单脚本和邮件脚本?那里还有另一个错误导致这不起作用。
【解决方案3】:

分别访问每个 POST var 并用逗号分隔每个地址。​​

$mailto  = $_POST['rec1'] . ', '; 
$mailto .= $_POST['rec2'];

【讨论】:

  • 这意味着你的脚本有问题,因为这是正确的(查看相应的邮件功能的php手册)。你检查过 $_POST 的内容了吗?顺便说一句:另外两个人写的答案和我一模一样。所以你怎么看?是我们三个错了还是你的脚本有问题?
【解决方案4】:

试试这个...

$mailto = join(', ',array_values(array_intersect_key($_POST, array_flip(array('rec1','rec2','rec3')))));

:)

其实我会走这条路:

<input name='rec[]' maxlength='60' size='17' />
<input name='rec[]' maxlength='60' size='17' />
<input name='rec[]' maxlength='60' size='17' />

...

$mailto = join(', ', $_POST['rec']);

【讨论】:

    猜你喜欢
    • 2012-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-10
    • 2013-04-22
    • 2021-01-27
    • 2021-01-22
    相关资源
    最近更新 更多