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 に答える