这个 {POST.data} 构造在 Yii 电子邮件中有效吗?

Will this {POST.data} construct work in a Yii email?

我正在考虑将网站从 Adob​​e 转换到 Yii。在 Adob​​e 代码中,我有一个包含变量的页面,它使用如下形式的 POST 数据:

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

当我提交时,post 数据被变量拾取并顺利发送。

但是当我开始将这些页面转换为 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 ";

对于注入了 post 数据的电子邮件,我强烈建议添加 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,这就是为什么他们会那样使用.