2016-05-30 4 views
-1

Я пытаюсь добавить несколько переменных в этот скрипт электронной почты. Само письмо отправляется каждый раз и принимается. Однако электронная почта содержит только переменную, а не информацию. Как я могу заставить переменные печатать данные, которые они представляют? (Я знаю, что переменная существует.)PHP-переменные Не отражается в PHP Mail

 <?//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); 
      ?> 
+4

Возможный дубликат [В чем разница между строками с одним кавычкой и двойными кавычками в PHP?] (Http://stackoverflow.com/questions/3446216/what-is-the-difference-between-single-quoted -and-double-quoted-strings-in-php) – miken32

+0

Он не объясняет, как помещать кавычки -> внутри кавычек. –

+0

Я пробовал нормальную переменную $. $, А также. "$ Variable". и т. д. –

ответ

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}!";

Как вы можете видеть, переменные получает проанализированы в любом из этих обстоятельств, но не в одинарных кавычках внутри Струна. Если вы хотите использовать одинарные кавычки, вам нужно прервать строку с периодом (.), Чтобы объединить их вместе. :)

2

Когда вы используете одиночную кавычку в строке, php не будет читать значения переменных, она просто предполагает, что это текст, если вы поместите свою строку в двойные кавычки, переменная будет интерпретирована как переменная.

Для того, чтобы быть более ясным

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

будет выводить

this is some text output 

НО

$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 = '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 /> 
     '; 
+0

Обманывать их как '. $ Var.' работал! Спасибо. –

+0

Упрощенный для четкого, полного решения. – cyberbit

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.

В любом месте, где вы видите двойные кавычки, они игнорируются и считаются частью строки.