1

ページ間でメッセージを保存するために、セッション変数 $_SESSION['flash'] を設定する関数を作成しました

function setFlash($string,$type="info") {

    switch ($type) {
        case "warning":
            $_SESSION['flashtype'] = "warning";
            break;
        case "error":
            $_SESSION['flashtype'] = "error";
            break;
        case "info":
            $_SESSION['flashtype'] = "info";
            break;
        default:
            $_SESSION['flashtype'] = "info";
            break;
    }
    $_SESSION['flash'] = $string;   
}

およびこのメッセージを出力する関数

function printFlash() {
      echo $_SESSION['flash'];
      unset($_SESSION['flash']);

}

すべてのページの上部でこの関数を呼び出します (当然、session_start の後)

問題は何も表示されないことですが、「unset($_SESSION['flash']);」とコメントすると すべてのページにメッセージを印刷します。

どうすれば解決できますか?


私のせいで申し訳ありませんが解決しました。

my page is something like this

include "func.inc.php"
session start

function editSomething {
  that call setFlash()
  }

include "template.php" (where printFlash() is called)

今、私はprintFlashを自分のページに直接入れて動作します..奇妙なことに...私の間違いは何ですか?

4

1 に答える 1

0

すべてのページで、これが起こったことです:

  • セッションをする
  • フラッシュ表示
  • フラッシュを削除
  • 価値のある「フラッシュ」を作成する

表示する前に Create を移動する必要があります。

(「フラッシュ」を送信しないため、あまり役に立ちません(作成直後に削除されます)

于 2011-09-21T10:18:02.220 に答える