将数据插入数据库后,我将设置一个会话,然后将页面重定向到另一个页面,在另一个页面上,如果在 smarty 中设置了会话,我将显示一条消息,一切正常。
{if $smarty.session.insert===true}
Thanks
{/if}
现在我如何在打印我的消息后取消设置会话?
您不应该在模板中这样做,而 smarty 对此不起作用。但是,如果你真的必须这样做,我看到的唯一方法可能是:
{php}
unset($_SESSION['insert']);
{/php}
你放在 {php} 标签之间的任何东西都将由 smarty 作为常规 php 脚本运行。
Smarty 是一个模板引擎。它不应该处理会话变量。您必须unset($_SESSION['...'])
在 Smarty 之外的 PHP 脚本中进行操作。
您真的不应该从模板中执行此操作,请在 PHP 中执行此操作,如下所示。
unset($_SESSION['session_var_name']);
如果您真的想以智能方式进行操作,您是否尝试过{$smarty.session.message|unset}
我不知道它是否有效,但它可能值得研究。
在显示 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}