Будет ли эта конструкция {POST.data} работать в электронном письме Yii?

Я подумываю о преобразовании веб-сайта из Adobe в Yii. В коде Adobe у меня есть страница включения переменных, которая использует данные формы POST, например:

$firstContact = "This is an email I sent to {POST.userFirstName}";

Когда я отправляю, данные поста выбираются переменной и отправляются красиво.

Но когда я начинаю конвертировать эти страницы в Yii, мне интересно, если это {POST.userFirstName}
это то, что Yii распознает как php и правильно развернет эти данные POST в сообщении электронной почты.

Может кто-то любезно сказать мне, где искать в документации Yii, которая будет на самом деле
ответьте на это, или, если вы уже знаете, что это работает, просто скажите мне об этом тоже?

Спасибо

0

Решение

Синтаксис в PHP будет выглядеть так

$firstContact  = "words ".$_POST['userFirstName']." more words ";

Или же

 $firstContact  = "words {$_POST['userFirstName']} more words ";

Но я бы лично включил это

 $userFirstName =  isset($_POST['userFirstName']) ? $_POST['userFirstName'] : '';
$firstContact  = "words $userFirstName more words ";

В случае писем с введенными в них почтовыми данными я настоятельно рекомендую добавить htmlentities

 $userFirstName =  isset($_POST['userFirstName']) ? htmlentities($_POST['userFirstName'], ENT_QUOTES, "UTF-8"); : '';
$firstContact  = "words $userFirstName more words ";

Но учтите, что это сделает HTML бесполезным, например, <p>html<\p> например, это во многом зависит от того, что вам нужно, и если вы можете на 100% доверять контенту, кому отправляется электронное письмо и кому оно отправляется. Причина в том, что пользователь может добавить html, содержащий код Javascript, который может захватывать сеансы пользовательских данных и т. Д., Все виды злых вещей, которых лучше избегать.

Есть несколько способов поместить переменные в строки (интерполяция), Yii может предложить такой способ, но это не сделано в нативном php как таковом. Многие системы шаблонов используют синтаксис, аналогичный тому, который у вас есть, но я не фанат использования просто POSTМне понадобится _ впереди, как в {_POST.var} Но это всего лишь я.

. в php оператор конкатенации похож на + в JavaScript Многие системы шаблонов используют его в качестве оператора доступа, что делает Javascript, это похоже на -> в php или [ ] в случае массива. В общем, дизайнеры шаблонов будут лучше знакомы с Javascript, поэтому они используют . сюда.

1

Другие решения

Других решений пока нет …