我是一个新的提问者,但长期阅读,我似乎无法找到我的 PHP 代码的解决方案。
在提交表单联系人后,我正在尝试发送和发送电子邮件。小菜一碟,直到我决定要将我的 html 电子邮件保存在不同的文件中,而不是将其定义为我的表单处理 php 文件中的字符串。我不得不说我发现以这种方式编辑消息的布局要容易得多。但事实证明,这并非易事。
我有“contact-form-process.php”
- 解析通过表单提交的信息;
- 将该信息添加到数组中,
IE
$formdata = array(
'first-name' => $_POST['first-name'],
'last-name' => $_POST['last-name'],
'email' => $_POST['email'],
'message-subject' => filter_var($_POST['message-subject'], FILTER_SANITIZE_STRING),
'message-body' => filter_var($_POST['message-body'], FILTER_SANITIZE_STRING),
);
和“sender-copy.php”
- 是我发送的实际 html 电子邮件;
- 使用“contact-form-process.php”中定义的变量执行一些简单的操作,
IE
<p>
Dear <?php $value = (isset($formdata['first-name']) ? $formdata['first-name'] : 'NOT-SET'),
</p>
现在回到“contact-form-process.php”,在其中我将 html 电子邮件正文作为字符串 ( $message = file_get_contents('sender-copy.php', TRUE);
) 包含在内,并将其用于评估它包含的 PHP 代码片段:
$message = preg_replace_callback (
'/<\?php(.+)\?>/',
function ($match) {
eval($match[1]);
return $value;
},
$message
);
所以现在我很难从“sender-copy.php”字符串中评估的 PHP 片段中检索 $formdata 数组值。这是我的输出的副本:
<p>
Dear NOT-SET,
</p>
任何人?谢谢你。