みなさーん、Smartyのマニュアルで予約変数の項目を見ていたら環境変数やリクエスト変数を簡単に出力する方法があることを知ってしまいました。。
今までは、PHP側で設定してSmartyにassignしていましたよ…。
環境変数、リクエスト変数とは
PHPでは$_ENVを使って表示できるやつですね。こんな感じで使いますよね。
$remote_addr = $_ENV['REMOTE_ADDR'];
$host = $_ENV['HTTP_HOST'];
$script = $_ENV['SCRIPT_NAME'];
Smartyで取得する方法は
{$smarty.env.REMOTE_ADDR}
{$smarty.env.HTTP_HOST}
{$smarty.env.SCRIPT_NAME}
と書くことで可能です。便利!
また、リクエスト変数もSmartyで表示できちゃいます。
PHPでは
$id = $_GET['id'];
$user_name = $_POST['user_name'];
と記述するものを、Smartyでは
{$smarty.get.id}
{$smarty.post.user_name}
※↑おすすめできない使用方法
のようにして使用することが可能です。
ただし、リクエスト変数はそのまま表示してしまうと悪意のあるjavascriptが実行されてしまう可能性があるため、
{$smarty.get.id|escape:'html'}
{$smarty.post.user_name|escape:'html'}
※↑おすすめできる使用方法
としてエスケープするようにしましょう。
いやー、Smartyって本当に素晴らしいですね…!