Smarty - 获取发布/会话变量

时间:2011-08-31 08:54:31

标签: php smarty

我正在购物网站上制作“In My Basket”功能。 我在productid上配对。 当你添加到购物篮时,我已经在帖子上做了篡改数据。发布的变量是 productid

我一直在使用This作为输出productid变量的指南。但我根本没有得到该页面的回复。

我使用的代码是{$smarty.request.productid}

我使用的TPL文件是HERE我正在使用< div class =“inbasket”>这是第69行。

似乎使用SERVER_NAME示例输出。但我需要等效的PHP $ _POST VAR。

有没有人知道我需要做什么才能通过productid并在屏幕上显示它然后我可以根据它做一个IF声明。

另外值得注意的是我使用的是Smarty的2.6.20版本

希望有人可以帮我解决这个问题。似乎smarty根本没有显示会话变量...

3 个答案:

答案 0 :(得分:22)

使用{$ smarty.request.productid}只能获取$ _POST数组或$ _GET数组中的值。 对于会话变量,您只需使用{$ smarty.session.productid}中的“session”。聪明,同样适用于

  • $ _ POST - {$ smarty.post.productid}
  • $ _ GET - {$ smarty.get.productid}
  • $ _ REQUEST - {$ smarty.request.productid}(请求将从$ _POST和$ _GET获得变量)
  • $ _ SESSION - {$ smarty.session.productid}

将它放在你的tpl文件的顶部,它将弹出所有已分配的smarty vars

{debug}

想要查看会话中的内容?把它放在tpl文件的顶部

{php}
print_r($_SESSION);
{/php}

答案 1 :(得分:2)

如果你没有调试,你可以做另一种选择。

在PHP文件中,

$ smarty->分配( 'request_var',$ _ REQUEST [ 'VAR1']);

在Smarty TPL中,

使用{$ request_var}

答案 2 :(得分:0)

BTW:打印用户输入时,请始终使用“escape”修饰符。否则您的应用程序容易受到攻击(XSS等)。

{$smarty.post.productid|escape}