0

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']これに対する回避策はありますか?

4

2 に答える 2

0

次のコード セグメントの順序を使用します。

コード セグメント 1:

$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);

コード セグメント 2:

function UserFullName()
{
    return isset($_SESSION['name_of_user'])?$_SESSION['name_of_user']:'';
}

コード セグメント 3:

$login = $fgmembersite->UserFullName();

コード セグメント 4:

<?php
    if ($login!='')
        echo "Logged in as: ".$login;
?>
于 2013-10-03T17:10:09.137 に答える