从智能变量中创建模板中的Smarty变量

时间:2012-07-18 02:17:58

标签: security templates hash smarty

我正在尝试使用salt(来自全局文件)和模板表单中的变量创建哈希。我需要在模板中创建哈希。也许我错过了一些明显的东西,但我无法将$ hash传递给php文件。传递bspid和sspid变量没有问题。 y代码:

<select name="bspid">
{section name=all loop=$buySides}
. . . .
</option>
{/section}
</select>
<input type="hidden" name="sspid" value="{$smarty.get.id}">
{ $hash=md5({$smarty.const.salt}.{$smarty.get.id}.bspid) }

`     [提交按钮]

非常感谢任何帮助。谢谢。

1 个答案:

答案 0 :(得分:0)

通常PHP用于向智能模板提供数据。所以你想在smarty中生成一个哈希值并将其传递给php?

我强烈建议不要这样做,因为

  • Smarty的内置{php}函数is deprecated有充分的理由。
  • 将模板代码与php函数混合的不良做法。
  • 可能还有很多原因可以像你的示例提示那样做。

您的示例提示您要根据选项框中的某些选定值动态创建md5哈希。

如果是这种情况,它甚至无法正常工作,因为md5只能在加载模板时计算一次 - 而不是如果所选选项被更改。如果你想动态生成md5以便在html表单中使用,我建议添加一些javascript来存档它。如果您已经在使用JScript框架,那么大多数都是md5插件。

为了向您提供有关如何解决此问题的更多信息,或许可以解释一下您正在努力解决的问题以及为什么要从选择框中散列出来的东西。