0

リダイレクトした後、新しいページにメッセージをエコーし​​たい。ただし、リロード(リダイレクト)後にメッセージを1回だけ表示し、次のリロード時にメッセージを表示しないようにします。これは可能ですか?私はあなたに例をあげます:

$_SESSION['message'] = "entry deleted"
   header("location: anotherpage.html") 

「anotherpage.php」で

echo "$_SESSION['message']" // upon next reload $_SESSION['message'] = "";
4

3 に答える 3

1

メッセージが設定され、有効かどうかを確認できます

if (isset($_SESSION['message']) && $_SESSION['message']) {
    echo $_SESSION['message'];
    $_SESSION['message'] = false;
}
于 2013-02-12T23:51:53.813 に答える
1

あなたが提案したように動作するはずです。(私があなたを正しく理解した場合)。

単に:

リダイレクトページ

$_SESSION['message'] = 'test';
header('Location: anotherpage.php');

「anotherpage.php」

echo $_SESSION['message'];
$_SESSION['message'] = ''; // message will being empty on further reloads
于 2013-02-12T23:51:59.400 に答える
1
echo $_SESSION['message'];
unset($_SESSION['message']);

しかし、私は次のようなメッセージを表示する関数を追加することを好みます。

function setMessage($msg_body, $css_style = 'normalMsg') {

    $_SESSION['messages'][$css_style][] = $msg_body;

}


function showMessages() {

    if (empty($_SESSION['messages'])) return;

    foreach ($_SESSION['messages'] as $css_style=>$messages) {
        echo '<div class="'.$css_style.'">';
        echo implode($messages,'<br>');
        echo '</div>';
    }
    unset($_SESSION['messages']);

}
于 2013-02-13T00:07:41.683 に答える