Я подумываю о преобразовании веб-сайта из Adobe в Yii. В коде Adobe у меня есть страница включения переменных, которая использует данные формы POST, например:
$firstContact = "This is an email I sent to {POST.userFirstName}";
Когда я отправляю, данные поста выбираются переменной и отправляются красиво.
Но когда я начинаю конвертировать эти страницы в Yii, мне интересно, если это {POST.userFirstName}
это то, что Yii распознает как php и правильно развернет эти данные POST в сообщении электронной почты.
Может кто-то любезно сказать мне, где искать в документации Yii, которая будет на самом деле
ответьте на это, или, если вы уже знаете, что это работает, просто скажите мне об этом тоже?
Спасибо
Синтаксис в 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, поэтому они используют .
сюда.
Других решений пока нет …