私は新しい質問者ですが、長年の読者であり、PHP コードの解決策を見つけることができないようです。
フォームの連絡先が送信された後、メールを送信しようとしています。HTMLメールをフォームプロセスのphpファイル内で文字列として定義するのではなく、別のファイルに保存することを決定するまでは簡単でした。この方法でメッセージのレイアウトを編集する方がはるかに簡単だと言わざるを得ません。しかし、それは簡単な作業ではありません。
「contact-form-process.php」があります
- フォームから送信された情報の解析;
- その情報を配列に追加し、
すなわち
$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」で定義された変数を使用していくつかの簡単な操作を実行し、
すなわち
<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>
誰?ありがとうございました。