$_SESSION['a'] = 'abc';
次のテンプレートページで
{$smarty.session.a}
これで表示できません。なぜか、再度読み込むと表示されます。
どなたかご教示お願いします。
session_start 関数で宣言はしていますよね。
PHPではセッション変数の値は Cookie に保存されており、$smarty.session は Cookie の値を取り出すものです。
一方、$_SESSION 変数の値が Cookie に書き込まれるのはページ遷移のタイミングなので、ご質問のような状況になってしまうと思われます。
ページがキャッシュされていて、実際にはリクエストが飛んでない可能性があります。
ログ等を埋め込んで、実際にリクエストが来てるかどうか確認するのがよいと思います。
設定で
chaching=false
にしているので、キャッシュはされていないと思います。
session_startは宣言しています。たしかに、ページの遷移でおかしなことになっているのかもしれません。しかしわかりません。