« include関数、スーパーグローバル変数の呼び出し|Smartyメモ002 | ホーム | PHPを用いた入力データのエラーチェック処理 »
2011年6月12日
Smartyスクリプト使用上の注意点
Smartyのスクリプトを格納するサーバー上のフォルダは、Smartyのデフォルトの設定では、危険とのことです。スクリプトが漏洩してしまいます。
アクセスされては困るフォルダは、サーバのドキュメントルートより上の階層に置くことにします。
ここでは、「templates」と「templates_c」フォルダをドキュメントルートより上の階層に置くこととします。
Smartyクラスを継承した独自のクラスを作成して、上記のタスクを達成します。
アクセスされては困るフォルダは、サーバのドキュメントルートより上の階層に置くことにします。
ここでは、「templates」と「templates_c」フォルダをドキュメントルートより上の階層に置くこととします。
Smartyクラスを継承した独自のクラスを作成して、上記のタスクを達成します。
<?php //ROOT_DIRの定義。サーバのドキュメントルートとする。 define("ROOT_DIR", $_SERVER['DOCUMENT_ROOT']."/.."); //Smartyクラスの呼び出し require_once("Smarty.class.php");▲独自に作成するMySmarty.class.php これにより、作成するphpスクリプトで
//Smartyクラスを継承した新しいクラスを定義 class MySmarty extends Smarty{ //コンストラクタの記述 function MySmarty(){ $this -> template_dir = ROOT_DIR . "/templates"; $this -> compile_dir = ROOT_DIR . "/templates_c"; $this -> left_delimiter = "{{"; $this -> right_delimiter = "}}"; $this -> default_modifiers = array('escape'); $this -> Smarty(); } } ?>
require_once("../../lib/MySmarty.class.php"); 〜省略〜 $smarty -> display("hakashun.tpl");とすれば、自分で作成したテンプレートファイルを呼び出すことが出来る。