0

I have a php script that sends an email to a specified email address:

$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));

The problem lays right here: <p><b>Username:</b> echo "$_POST[unique_id]";</p>', and the same with the pass phrase. They display exactly like that and not like what was entered on the form. How do I get them to display what was posted on the form previous to the script? the input field names are same as the post values in the script. Thank you!

4

4 回答 4

2

您在那里使用双引号。

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

改用单引号并更改$POST$_POST

'<p><b>Username:</b>' . $_POST['unique_id'] . '</p>',
于 2013-08-23T20:33:10.813 回答
0

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

'<p><b>Username:</b> echo "'.$_POST[unique_id].'";</p>',
于 2013-08-23T20:33:49.903 回答
0

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

'<p><b>Username:</b>' . $_POST[unique_id]. '</p>'
于 2013-08-23T20:34:49.747 回答
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>", 
于 2013-08-23T20:42:02.760 回答