HTML Form Guide の CodeIgniter + Registration/Login スクリプトを使用しています。ナビゲーションバーにユーザー名を表示したかった ([ユーザー名] としてログイン)。したがって、コントローラーに変数を追加しました。
$data['login'] = '';
$this->load->view('templates/header', $data);
$this->load->view('templates/nav', $data);
$this->load->view('pages/'.$page, $data);
$this->load->view('templates/footer', $data);
そして nav.php で:
<?php
if ($login!='')
echo "Logged in as: ".$login;
?>
ログイン後に読み込まれる Access Controlled Page で、次の操作を行います。
$login = $fgmembersite->UserFullName();
つまり:
function UserFullName()
{
return isset($_SESSION['name_of_user'])?$_SESSION['name_of_user']:'';
}
ユーザーの名前は Access Controlled Page では正しく返されますが、navbar では返されません。ビューが読み込まれる順序が原因だと思います。ロードされる前に、コントローラーで宣言した内容に従ってtemplates/nav
、変数はおそらくクリアされています。$data['login']
これに対する回避策はありますか?