再会,
我的脚本有问题。我正在做的是:
我想向用户发送电子邮件。对于不同类型的邮件有不同的模板,例如用于注册确认的一种设计,一种用于最近新闻的设计等。所以,我所做的是,我创建了一个表格并将每个设计存储在名为 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。
嗯,我做了很少的研究,从几个论坛,我知道了,
第一个:虽然我们将 HTML 模板的内容与这些 PHP 变量一起添加到数据库中,但它们已成为该数据库列本身的值,不再被视为 PHP 变量。
第二:有人声称他已经使用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) 放在使用邮件功能的同一页面上。它使代码看起来很丑,而不是保持简短和整洁。
请帮忙!