0

我正在使用使用wp_mail函数的自定义 Wordpress 模板。

所以我在下面有这段代码,粗体部分给我带来了问题:

wp_mail($et_email_to, sprintf( '[%s] ' . esc_html($_POST['et_contact_subject']), $et_site_name ), esc_html($_POST['et_contact_message']) ,'From: "'.esc_html($_POST ['et_contact_name']) .'" <' .esc_html($_POST['et_contact_email']) .'>');

我想在 Message 部分包含额外的东西。esc_html($_POST['et_contact_message'])

当我尝试在那里添加任何额外内容时,它会给出各种 PHP 错误。

如果我用esc_html()“12345”之类的普通文本替换该部分,它就可以正常工作。

我想在邮件末尾添加的是:

"IP Address: ".$_SERVER['REMOTE_ADDR']."

Came From: ".$_SERVER['HTTP_REFERER']."

Browser: ".$_SERVER['HTTP_USER_AGENT']

如果我删除那esc_html()部分效果很好,但我不能让两者一起工作。

esc_html()它本身也可以正常工作,它会从联系人表单中打印消息。我只是不能让这两件事一起工作。

例如,这些将失败:

esc_html($_POST['et_contact_message']) 12345,

esc_html($_POST['et_contact_message'] $_SERVER['REMOTE_ADDR']),

ETC...

请帮帮我。谢谢!

4

2 回答 2

2

查看 PHP 中的字符串连接 - 有很多方法可以做到这一点,我将重点介绍http://www.php.net/manual/en/language.types.string.php中的一些

<?php
$foo = 'some';
$bar = 'baz';

$message = '';
$message .= 'Add ' . $foo;
$message .= ' variable to a string';

// You can do this all at once, in one line or many
$mesage = 'Add ' . $foo . ' variable to a string';

// Double-quotes are useful
$message = "Add {$foo} variable to a string";

// And there are other methods, like HEREDOC
$message = <<<TEXT
Add $foo variable to a string...in a HEREDOC



block.
TEXT;

// Some editors, like VIM, support syntax highlighting in HEREDOC
// Useful if you want to write out legeble code from other languages, like
// SQL.
$message = <<<SQL
SELECT
    *
FROM
    table
WHERE
    col = %s
SQL;

$wpdb->prepare($message, $foo);
于 2013-03-06T00:26:10.557 回答
0

我终于找到了让它工作的方法!这是代码:

$message = $_POST['et_contact_message'];
$message .= '

IP Address: ' . $_SERVER['REMOTE_ADDR'];
$message .= '

Came From: ' . $_SERVER['HTTP_REFERER'];
$message .= '

Browser: ' . $_SERVER['HTTP_USER_AGENT'];
wp_mail($et_email_to, sprintf( '[%s] ' . esc_html($_POST['et_contact_subject']), $et_site_name ), $message,'From: "'. esc_html($_POST['et_contact_name']) .'" <' . esc_html($_POST['et_contact_email']) . '>');
于 2013-03-06T00:14:54.540 回答