<< miniDNSからお引越 | Top | もう3月も終わりかい! >>

[ Date: 2005年02月24日 / Modified: 2006年12月17日 ]

PHPのSESSION変数でファイル名を渡す

Smartyのテンプレートから別のPHPスクリプトを読み込むには

{include_php file="$server_root/blog/scripts/include_file.php"}

などとするが、そのスクリプトに読み込みたい(その都度違った)ファイル名を渡したいときはどうすればいいのだろう。普通に考えれば、ファイル名をSmarty側で読める変数名にassignしてテンプレート側で読めばできそうなのだが、いろいろやってもうまくいかなかった。

...ということで、結局SESSION変数で値のファイル名をグローバルなスコープにしてしまうことで、うまくいった。

index.php(テンプレート呼び出し側)

 session_start();
 ..............................
 if (isset($file_path)) {
    $_SESSION["incfile"] = $file_path;
 }

テンプレート側

 {include_php file="$server_root/blog/scripts/include_contents.php"}

include_contents.php側で

  $file = $_SESSION["incfile"];
  include("$file");

投稿者 jgb : 2005年02月24日 08:53