2014-01-12 4 views
0

Я использую PHPMailer, чтобы отправить электронную почту после регистрации, но я не могу показаться, чтобы поместить переменную вПередача переменной в PHPMailer тело

$htmlBody = '<html><body><a href = "http://www.mywebsite.com/confirm_registration.php?passkey={$com_code}">Confirm</a></body></html>'; 

Где $ com_code уникальный код доступа прилагается к ссылке, полученной пользователь в своем письме. Проблема состоит в том, что $ com_code отображается как $ com_code вместо фактической строки. Любые идеи были бы полезны.

ответ

3

Используйте двойные кавычки вместо одинарных кавычек для строки, и избежать двойных кавычек внутри, как, например:

$htmlBody = "<html><body><a href=\"http://www.mywebsite.com/confirm_registration.php?passkey={$com_code}\">Confirm</a></body></html>"; 

В качестве альтернативы, используйте оператор конкатенации вместо этого, как таковые:

$htmlBody = '<html><body><a href="http://www.mywebsite.com/confirm_registration.php?passkey=' . $com_code . '">Confirm</a></body></html>'; 

PHP ищет только переменные внутри строк, заключенных в двойные кавычки.

+0

Это работает. Потрясающие! Спасибо, иллюзионисты! – Mike

+0

Это полезно знать. Это спасет меня от многих головных болей в будущем. – Mike

0

Проблема не имеет ничего общего с PHPMailer. Проблема в том, что вы пытаетесь неправильно интерполировать переменную в строке. Помните, что в отличие от синтаксиса с двойными кавычками и heredoc, переменные и escape-последовательности для специальных символов не будут расширяться, если они встречаются в одиночных кавычках. Вы можете использовать два пути выхода из многих в вашей ситуации:

1)

$htmlBody = "<html><body><a href = 'http://www.mywebsite.com/confirm_registration.php?passkey={$com_code}'>Confirm</a></body></html>"; 

2)

$htmlBody = '<html><body><a href = "http://www.mywebsite.com/confirm_registration.php?passkey='.$com_code.'">Confirm</a></body></html>'; 

Пожалуйста, обратите внимание, как используются кавычки!

Смежные вопросы