質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Smarty

Smartyは、PHPアプリケーションで使用されるテンプレートエンジンです。

Q&A

解決済

1回答

15546閲覧

PHP Fatal error: Uncaught exception 'SmartyException' with message 'Unable to load template file

tarou

総合スコア233

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Smarty

Smartyは、PHPアプリケーションで使用されるテンプレートエンジンです。

0グッド

2クリップ

投稿2014/03/12 03:04

Smartyを使用してPHPのプログラムを開発しています。
設定を進めていたところ、下記のようなエラー表示が出ました。

PHP Fatal error: Uncaught exception 'SmartyException' with message 'Unable to load template file
ファイルに記述したソースコードは以下の通りです。

/Smart/lib/smarty_setup.php
`
require_once 'Smarty.class.php';

class SmartySetup extends Smarty {
function SmartySetup() {
$this->template_dir = SMARTY_DIR . "templates";
$this->compile_dir = SMARTY_DIR . "templates_c";
$this->cache_dir = SMARTY_DIR . "cache";
$this->config_dir = SMARTY_DIR . "configs";

$this->left_delimiter = "<!--{"; $this->right_delimiter = "}-->";

}
}
/public_html/smarty.php
require_once("../../Smarty/libs/smarty_setup.php");
$smarty = new Smarty();
$smarty->display("smarty.tpl");
`

Smartyはおろか、PHPも分からないことが多いので、非常に困っています。
PHP初心者にも理解できるよう、分かりやすく教えていただけると助かります。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

テンプレートファイルがロード出来ませんと書いてあります。
設定したディレクトリ構成では、

templates/smarty.tpl をロードするようになっています。
templates/smarty.tpl がなければ作りましょう。

templates/smarty.tplがあった場合でも、ロードが出来ない場合は、

<?php echo SMARTY_DIR . "templates/smarty.tpl\n"; として、ディレクトリのパスを確認してみましょう。 考えている、フォルダ構成と違うかもしれません。 それも合っている場合は、綴りも確認しましょう。馬鹿にしているわけではありませんが、1文字間違えているだけで動きません。初心者の時は全角と半角を間違えたり、する事もあります。全角、半角スペースの違いも問題になる事があります。 ただ、今回のケースでは、エラー内容から、プログラムのエラーではなくて、ファイルが見つからないとあります。 他の原因としては、ファイルのパーミッション(権限)が問題かもしれません。webサーバから読み込めるようになっていなくても、やはりロード出来ないので、ファイルがある場合はパーミッションを疑ってみてください。 SMARTY_DIR . "templates_c"; のパスに書き込み権限がないとエラーになりそうですので、パーミッションを確認してみてください。

投稿2014/08/26 02:27

h_sakurai

総合スコア228

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tarou

2014/08/28 00:38

コメント遅くなりました。 回答ありがとうございます。丁寧に説明して頂きとても助かります。 ディレクトリのパス、パーミッションを確認して試してみます。
h_sakurai

2014/09/01 16:38

いいから、答え教えてくれよーっとも思うかもしれませんけど、 時間があれば、じっくり調べてみると色々勉強になってよいと思います。 時間ないならもう、近くに要る人に直接聞くとか、チャットでガッツリ聞くのが速いです
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問