PHP变量未在PHP Mail中回显

时间:2016-05-30 22:16:51

标签: php email variables sendmail

我正在尝试向此电子邮件脚本添加几个变量。电子邮件本身每次发送,都会收到。但是,电子邮件包含变量本身而不包含信息。 如何获取变量来打印它们代表的数据? (我知道变量存在。)

      <?//Send Welcome Email
             $to = '//Email Removed for security';
             $subject = 'Application Received';
             $msg = '
                    We have received your application. You can login at  
                     anytime by visiting:<br />
             <a href=\"$siteURL/return-Login.php" title="$siteName - Return Login\">$siteURL/return-Login.php</a><br /><br />
                    ';
             sendEmail($to,$subject,$msg,$siteName,$siteEmail,$siteURL,$account,$ip);
            ?>

3 个答案:

答案 0 :(得分:2)

当你在字符串中使用单引号时,php不会读取变量值,它只是假定它是文本,如果你将字符串放在双引号中,变量将被解释为变量。

更清楚

$my_var = "some text";
$my_body = "this is $my_var output";
echo $my_body;

将输出

this is some text output

BUT

$my_var = "some text";
$my_body = 'this is $my_var output';
echo $my_body;

将输出

this is $my_var output

如果您因任何原因想要使用单引号,则必须链接此类

字符串
$my_var = "some text";
$my_body = 'this is '.$my_var.' output';
echo $my_body;

在这种情况下,您的输出将再次

this is some text output

更具体地说,你的$ msg看起来应该是

$msg = 'We have received your application. You can login at  
        anytime by visiting:<br />
        <a href=\"'.$siteURL.'/return-Login.php" title="'.$siteName.' - Return Login\">'.$siteURL.'/return-Login.php</a><br /><br />
        ';

答案 1 :(得分:0)

我看到一个无法正确显示的变量。也许这将适用于您打印错误的每个变量。

查看电子邮件正文字符串。您使用单引号来生成字符串,并且$ siteURL变量位于某处。除非字符串是用双引号声明的,否则直接包含在字符串中的变量将不会解析。

以下两种方法可以解决您的问题:

  1. $msg = 'The site URL is' . $siteURL . '. You can see I interrupted the single quotes to add that site uri.';
  2. $msg = "The site URL is $siteURL. Putting the variable in curly brackets also works: {$siteURL}!";
  3. 正如您所看到的,变量在任何一种情况下都会被解析,但不会在字符串中的单引号中解析。如果要使用单引号,则必须使用句点(。)中断字符串以将它们连接在一起。 :)

答案 2 :(得分:0)

您的问题是因为您需要使用两种不同类型的引号才能正确呈现HTML和变量。

您需要嵌套报价。

尝试以下方法:

$msg = 'We have received your application.  You can login at anytime by visiting:<br /><a href="'.$siteURL.'/return-Login.php" title="'.$siteName.' - Return Login">'.$siteURL.'/return-Login.php</a><br /><br />

第一个单引号表示字符串的开头。在任何你看到单引号的地方,你都在启动并停止字符串并将PHP插入其中。

你看到双引号的地方,这些被忽略并被视为字符串的一部分。