1

2ページあります。1 つのページで、配列を に追加してい$_SESSIONます。2 番目のページでは、配列を (正常に) 読み取り、次にunsetその配列を から読み取ってい$_SESSIONます。

ただし、2番目のページには、最初のページがセッションに保存された値とは異なる値が表示されます。これにより、最初のページが何度も呼び出されると思いますが、セッション中ではない自分でページを再度リロードしますか?

私は何を間違っていますか?ありがとう

編集: 2 番目のスクリプトは、Web サイトのフラッシュ ファイルによって要求されることを忘れていました。フラッシュ ファイルには、パラメーターの 1 つとしてセッション ID があり、それを 2 番目のスクリプトに送信して、適切なセッション (session_id($_REQUEST['token']);パーツ) をロードします。

ページ1:

$_SESSION['HEADER_MODEL'] = getModelForHeaderVideo();
/*
    [HEADER_MODEL] => Array
        (
            Yes these are just random numbers (for testing)
            [modID] => 303768959
            [modUsername] => 347073152
        )
*/

ページ2:

<?php
        session_id($_REQUEST['token']);
        session_start();

        header('Content-Type: text/html; charset=utf-8');

        if (!isset($_SESSION['HEADER_MODEL']['modID']) || (trim($_SESSION['HEADER_MODEL']['modID']) == '')) {
                echo "modID=0";
        } else {
                echo "&modID={$_SESSION['HEADER_MODEL']['modID']}&modUsername={$_SESSION['HEADER_MODEL']['modUsername']}";
                unset($_SESSION['HEADER_MODEL']);
        }
?>
4

1 に答える 1

1

PHPのドキュメントを参照してください

注: セッション cookie を使用する場合、session_id() に id を指定すると、現在のセッション id が設定されているものと同じであるかどうかに関係なく、session_start() が呼び出されたときに常に新しい cookie が送信されます。

PHPセッション配列は変化し続けます。これは、コードがそうするように指示しているためです

于 2012-09-25T11:03:12.767 に答える