良い一日、
スクリプトに問題があります。私がやっていることは次のとおりです。
ユーザーにメールを送信したい。サインアップ確認用のデザイン、最近のニュース用のデザインなど、さまざまな種類のメール用にさまざまなテンプレートがあります。そこで、テーブルを作成し、各デザインを content という列に完全な HTML コードとともに保存しました。
この目的のために、私のデータベース設計は非常に単純です。
ID | type | content
1 | signup | <html> ... <body> .. content of email ... </body></html>
だから、右上は私のデータベースです。ID 1 のフィールド 今、誰かがサインアップしたときに、上の表からコンテンツを取得した電子メールを彼に送信しようとしています。コンテンツ フィールドの下のテキストは次のようになります。
<html>
.
.
<body>
Good Day,
You have successfully created your account.
Please activate your account now by clicking below:
<a href="activate.php?md5=$md5&code=$code">ACTIVATE</a>
</body>
</html>
上記のコードでは、アクティベート リンクをチェックアウトする場合、PHP 変数 $md5 と $code を使用しました。対応する値が実際の電子メールに出力されると考えています。ただし、 $md5や$codeのようにそのまま出力されます。
まあ、私はほとんど調査をしなかったし、いくつかのフォーラムからそれを知った.
1 つ目: HTML テンプレートのコンテンツをこれらの PHP 変数と共にデータベースに追加しましたが、それらはデータベースの列自体の値になり、PHP 変数として扱われなくなりました。
2番目: eval()関数を使用して動作させたと主張する人がいます。セキュリティの観点から、ユーザーではなくデータベースから値を取得しないため、evalを使用できます。試してみましたが、まだ何もありません。
以下は、eval() で試したコードです。
$md5 = $row['md5']; // These variables values I'm expecting to come in template content
$code = $row['activ_code']; // These variables values I'm expecting to come in template content
ob_start();
eval("\$template_content = \"$template_content\";");
$message = $template_content;
ob_end_clean();
誰かがこれで私を助けることができますか? メール機能を使用している同じページに完全なテンプレート (HTML) を配置したくありません。コードを短くきれいに保つ代わりに、コードを醜く見せます。
助けてください!