- 締切済み
smartyについて
smartyについて 環境は、windows /php-5 / smarty-2.6.17です。 以下の2つエラーが出てどう対処すればいいか困っています。 【1つめ】 Fatal error: Smarty error: [in **.tpl line 10]: syntax error: unrecognized tag: 文--> 【2つめ】 {$errmsg (Smarty_Compiler.class.php, line 446) in C:\xampp\php\PEAR\Smarty\libs\Smarty.class.php on line 1095 【ソース】 呼び先PGは、 $this->smarty->assign("errmsg","ニックネーム"); $this->smarty->display("**.tpl"); テンプレートでは、 <tr id="" class=""> <td id="" class=""><font color="#ff0000">{$errmsg}を入力してください。</font></td> </tr> よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- めとろいと(@naktak)
- ベストアンサー率36% (785/2139)
内部エンコーディング、PHPスクリプトの文字コード、テンプレートの文字コードを 確認して下さい。 エラーで発生している文字をS-JISとし、EUC-JPで表示した場合は以下になります。 <!--i"・・・{赴+-> <tr id="" class=""><td id="" class="">燕鵜v隊鋲s"縲・・・蛟酪乱Mボタンり・k"逐・準・・B</td></tr> <input type="text" name="Answer1" size="32" maxlength="30" value="{$Answer1}"> UTF-8で表示した場合は以下になります。 <!--{--> <tr id="" class=""><td id="" class="">L̓eł낵ΑM{^ĂB</td></tr> <input type="text" name="Answer1" size="32" maxlength="30" value="{$Answer1}"> 文字コード周りの環境が上手くいってないせいで、Smartyがテンプレートの分析を 行う時点で、ある文字列が「{」と認識され、Smartyの文法が間違っている と怒られている可能性が極めて高いと思われます。
- yexob328
- ベストアンサー率25% (1/4)
文字がエラーになっていたら {literal}エラーになっている文字{/literal} と、囲むとよいかもしれません。
お礼
ありがとうございます!!
- めとろいと(@naktak)
- ベストアンサー率36% (785/2139)
テンプレートを削除しながら確認していって、どれが問題で 発生しているか確認して下さい。
お礼
ありがとうございます。 エラー箇所うを特定いたします!
補足
調べたところ、テンプレートに書かれている、文字に反応していました。箇所ありました。 【1つめ】 PG:<!--ここから本文--> エラー文字:本 【2つめ】 PG:<tr id="" class=""><td id="" class="">下記の内容でよろしければ送信ボタンを押してください。</td></tr> エラー文字:ボ 【3つめ】 PG:<input type="text" name="Answer1" size="32" maxlength="30" value="{$Answer1}"> エラー文字:"{$Answer1}" 3つめはどうしても使用したいのですがどのようにすればいいのでしょうか。
お礼
ありがとうございます!!