3

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

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

现在我如何在打印我的消息后取消设置会话?

4

4 回答 4

2

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

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

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

于 2014-01-23T11:21:41.113 回答
0

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

于 2013-01-21T17:03:55.690 回答
0

您真的不应该从模板中执行此操作,请在 PHP 中执行此操作,如下所示。

unset($_SESSION['session_var_name']);

如果您真的想以智能方式进行操作,您是否尝试过{$smarty.session.message|unset} 我不知道它是否有效,但它可能值得研究。

于 2013-01-21T17:11:44.470 回答
0

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

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

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

在您的模板文件中

{if isset($smarty.session.insert)}
  {$smarty.session.insert}
{/if}
于 2013-07-30T06:12:41.393 回答