0

我已经在 smarty 中编写了 header.tpl 和 login.php 文件。如果用户登录,我想显示注销文本。否则如果用户未登录,它应该显示登录。下面是 login.php 的代码

if(isset($_REQUEST['submit']))
    {
        $name=$_REQUEST['name'];
        $pass=$_REQUEST['pass'];
    $rs=mysql_query("select * from form where name='$name'");
    $fetchdata=mysql_fetch_array($rs);  
        if($rs)
        {
            $name=$fetchdata['name']
            $_SESSION['name']=$name;
            $name1=$_SESSION['name'];
            //$smarty->assign('name',$_SESSION['name']);
            $smarty->assign('name1',$name1);
            $smarty->display("about.tpl");

        }
        else
        {
            $smarty->display("login.tpl");
        }
    }

下面是 header.tpl 代码

<a href="login.php">{if $name1!= ''}: Logout{else}login{/if}</a>

它显示错误

Parse error: syntax error, unexpected T_VARIABLE in D:\xampp\htdocs\smarty\login.php on line 29
4

2 回答 2

0

我发现了一堆奇怪的东西。

  1. 在插入 sql 查询之前,您应该转义名称并传递。有关更多详细信息,请参见http://www.php.net/manual/en/function.mysql-real-escape-string.php
  2. php 文档建议您应该使用 MySQLi 扩展
  3. 我看不到身份验证..我的意思是您不使用给定密码。这个对吗?
  4. 我认为即使结果为空,mysql_query 也不是错误的。if($fetchdata=mysql_fetch_array($rs)){...你可以用代替来解决这个问题if($rs)
  5. 我不确定这是否会引发异常,但我会写<a href="login.php">{if {$name1|default:""}!= ''}: Logout{else}login{/if}</a>而不是<a href="login.php">{if $name1!= ''}: Logout{else}login{/if}</a>
于 2012-08-22T18:19:25.193 回答
0

这是一篇旧帖子,但几分钟前我遇到了类似的问题。

我收到变量的解析错误:$_smarty_t

我尝试了不同的方法来消除错误,但没有什么明显的。我确认缓存已关闭,但问题仍然存在,即使在删除单个缓存文件后也是如此。

最终我删除了那个目录的全部内容并刷新,错误终于解决了。

Smarty v3.1.27 出现此问题,通过 Composer、smarty/smarty 加载。

于 2015-11-06T02:56:00.287 回答