2011-09-10 8 views
0

私は、セッション変数に含まれるフィードバックメッセージも表示する現在の管理者ログイン情報を表示する機能を持っています。セッション変数を返す方法と、次のリフレッシュ時にレンダリングした後に直ちにクリアする方法はありますか?

セッション変数が表示された後に直にヌルに設定されるように設定しました。

function loginInfo() 
{ 
    $code .= 'You are logged in as bob.'; 
    $code .= 'msg:'.$_SESSION['msg']; 

    $_SESSION['msg'] = null; 

    return $code; 
} 

function breadCrumbs($section = '') 
{ 
    $html .= $this->loginInfo(); 
    $html .= '<h1><a href="/admin">Dashboard</a> &gt; '.$section.'</h1>'; 

    return $html; 
} 

function dashboard() 
{ 
    $html .= $this->breadCrumbs(''); 
    $html .= '<ul>'; 
    $html .= etc.. 
} 

----------- 

$_SESSION['msg'] = 'message here'; 
header(Redirect "/admin"); 
exit(); 

その後、ダッシュボード機能は、新しいページに呼び出されます。しかし、実装では、私は、変数を表示する機能がそうのようにそれを表示しています。

echo $admin->dashboard(); 

上記の値は常にnullを返します。戻り値から$コードが表示される前に関数内でnullに変更されているためです。

どうすればこの問題を回避できますか?

+0

あなたのコードを取得しますそれ自体は正しいです。問題はどこかにあるはずです。 (PHPは遅延評価がありません。セッション変数の古い値で$ codeを構築してからnullに設定します)。 – NikiC

+0

これはうまくいきません。変数をnullに設定します。私はクラスの残りの部分をおそらく含めます。 – Nicekiwi

答えて

0

いいえ、あなたのコードはかなり良いです。

別の場所で検索する必要があります。あなたのコード内のloginInfo();の2つの出現箇所について

検索し、あなたはそれを

+0

2回宣言されていません。コードの残りの部分を投稿したとは思いません。すべてはまだよく見えますか? – Nicekiwi

+0

@Ezra:宣言されていませんが、 – genesis

+0

とよく言われていますが、loginInfo()はセッション変数が設定される前に一度呼び出され、ヘッダリダイレクト後に一度呼び出されます。 :P君は迷惑! – Nicekiwi

関連する問題