将值格式化为电子邮件的数组

时间:2013-08-23 20:29:56

标签: php

我有一个PHP脚本,可以将电子邮件发送到指定的电子邮件地址:

$headers = array(
  'From: emailhidden',
  'Content-Type: text/html'
); 

$body = array(
  '<br><br><br>',
  '<h3>Success!</h3><br>',
  '<p>Your sign up for My Panda was Successful! you may now sign in using the    information provided below.</p>', 
  '<p><b>Login URL:</b> <a href="http://www.green-panda.com/my-panda.html">http://www.green-panda.com/my-panda.html</a></p>', 
  '<p><b>Username:</b> echo "$_POST[unique_id]";</p>',
  '<p><b>Username:</b>". $POST['unique_id']."</p>',
  '<p><b>Password:</b> echo "$_POST[passphrase]";</p>',
  '<p>If you ever have any problems with My Panda or have questions, please contact us at: moevans@green-panda.com'
);

mail('emailhidden', 'My Panda Registration', implode("\r\n", $body), implode("\r\n", $headers));

这个问题就在这里:<p><b>Username:</b> echo "$_POST[unique_id]";</p>',和密码一样。它们显示的完全相同,而不是像在表单上输入的那样。如何让它们显示脚本之前的表单上发布的内容?输入字段名称与脚本中的post值相同。谢谢!

4 个答案:

答案 0 :(得分:2)

你在那里使用双引号。

'<p><b>Username:</b>". $POST['unique_id']."</p>',
                    ^                     ^

使用单引号并将$POST更改为$_POST

'<p><b>Username:</b>' . $_POST['unique_id'] . '</p>',

答案 1 :(得分:0)

它将它们视为字符串,因此将它们渲染为书面形式。连接你的变量,你的问题应该解决。

'<p><b>Username:</b> echo "'.$_POST[unique_id].'";</p>',

答案 2 :(得分:0)

您的代码存在语法问题。使用$_POST的正确语法(带下划线),并使用相同的引号按字符串连接字符串和变量

'<p><b>Username:</b>' . $_POST[unique_id]. '</p>'

答案 3 :(得分:0)

没有违法行为,但您的代码充满了错误和语法错误。

首先,您使用单引号,因此PHP不会解释变量的值。

其次,你在字符串文字中调用echo。

第三,你在很多POST数组索引上都缺少引号。

第四,你缺少一些$ _POST变量的下划线。

第五,你连续两次显示用户名,是不是有意?

这应该有所帮助:

  '<p><b>Username:</b>' .$_POST['unique_id'].'</p>',
  '<p><b>Username:</b>' .$_POST['unique_id'].'</p>', //why twice?
  '<p><b>Password:</b>' .$_POST['passphrase'].';</p>',

您应该知道:如果您使用单引号声明字符串,PHP将不会解释其中的任何变量。试试这个,你会明白我的意思:

    $foo = "Bar";
    echo '$foo';
    echo "$foo";

由于您使用单引号,我在上面添加了连接以使代码有效。您可以通过在标记内使用单引号并将字符串括在双引号中来完成相同的操作。然后你可以直接运行变量,如下所示:

    "<p><b>Username:</b>$_POST['unique_id']</p>",