« include関数、スーパーグローバル変数の呼び出し|Smartyメモ002 | ホーム | PHPを用いた入力データのエラーチェック処理 »

2011年6月12日

Smartyスクリプト使用上の注意点

Smartyのスクリプトを格納するサーバー上のフォルダは、Smartyのデフォルトの設定では、危険とのことです。スクリプトが漏洩してしまいます。
アクセスされては困るフォルダは、サーバのドキュメントルートより上の階層に置くことにします。
ここでは、「templates」と「templates_c」フォルダをドキュメントルートより上の階層に置くこととします。

Smartyクラスを継承した独自のクラスを作成して、上記のタスクを達成します。
<?php
	//ROOT_DIRの定義。サーバのドキュメントルートとする。
	define("ROOT_DIR", $_SERVER['DOCUMENT_ROOT']."/..");
	//Smartyクラスの呼び出し
	require_once("Smarty.class.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(); } } ?>
▲独自に作成するMySmarty.class.php
これにより、作成するphpスクリプトで
require_once("../../lib/MySmarty.class.php");
〜省略〜
$smarty -> display("hakashun.tpl");
とすれば、自分で作成したテンプレートファイルを呼び出すことが出来る。
OpenID対応しています OpenIDについて

このブログ記事について

このページは、HAKASHUNが2011年6月12日 18:02に書いたブログ記事です。

ひとつ前のブログ記事は「include関数、スーパーグローバル変数の呼び出し|Smartyメモ002」です。

次のブログ記事は「PHPを用いた入力データのエラーチェック処理」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。