在smarty中未设置会话

时间:2013-01-21 16:57:33

标签: php session smarty unset

将数据插入数据库后,我将设置一个会话,然后将页面重定向到另一个页面, 在另一个页面上,如果会话设置为smarty,我将显示一条消息,一切正常。

{if $smarty.session.insert===true}
      Thanks
{/if}

现在,如何在打印信息后取消设置会话?

4 个答案:

答案 0 :(得分:2)

你不应该在模板中这样做,而smarty对此不起作用。 但是,如果你真的必须这样做,我看到的唯一方法可能是:

{php}
    unset($_SESSION['insert']);
{/php}

你在{php}标签之间放置的任何内容都将由smarty作为常规php脚本运行。

答案 1 :(得分:0)

Smarty是一个模板引擎。应该来处理会话变量。您必须在Smarty之外的PHP脚本中执行unset($_SESSION['...'])

答案 2 :(得分:0)

你真的不应该从模板那样做,在PHP中这样做。如下所示。

unset($_SESSION['session_var_name']);

如果你真的想要聪明地做,你试过{$smarty.session.message|unset} 我不知道它是否有效,但可能值得研究。

答案 3 :(得分:0)

在显示智能模板的php文件中,在显示功能之后取消设置。

if(isset($_POST['postdata'])) {
  $_SESSION['insert'] = 'success';
}

$smarty->display('test.html');
unset($_SESSION['insert']);

在模板文件中

{if isset($smarty.session.insert)}
  {$smarty.session.insert}
{/if}