首页 文章

如何用php在smarty模板中设置Cookie?

提问于
浏览
1

我目前在使用.tpl智能模板类的PHP代码块中设置cookie时遇到问题 .

在.tpl类我有一些喜欢:

{php}
    setcookie("school", "test");
{/php}

School: { $smarty.cookies.school }

但是这不打印任何东西 . 我知道php setcookie调用只在一个.php文件中工作,因为我已经测试过了,但无法让它与php代码片段在.tpl类中工作 .

任何建议得到赞赏,D

2 回答

  • 1
    {php}
        setcookie("school", "test");
        $_COOKIE['school'] = 'test';
    {/php}
    

    这是因为$ _COOKIE superglobal仅在页面刷新时更新,而不是在使用 setcookie() 之后

    确保您使用 SmartyBC.class.php 而不是 Smarty.class.php 因为 {php}{/php} 将无法使用Smarty.class.php .

    还记得将 $php_handling 属性设置为SMARTY_PHP_ALLOW .

    更多信息http://www.smarty.net/docsv2/en/variable.php.handling.tpl

  • 5

    我没有将嵌入式PHP代码放入我的模板中,而是创建了一个智能的自定义函数插件,在调用时允许我设置cookie .

    关于自定义函数的详细信息:http://www.smarty.net/docsv2/en/plugins.functions.tpl Peter向我指出了这样做的想法 .

    但是,我仍然有点好奇如何在模板代码中对嵌入式php进行此操作,即使它不是一个好的做法 .

相关问题