1

我有两页。在一页上,我将一个数组添加到$_SESSION. 在第二页上,我正在读取数组(成功),然后unset$_SESSION.

然而,发生的事情是第二页显示的值与会话中存储的第一页不同 - 这让我认为第一页被一次又一次地调用,但如果我在会话中而不是自己重新加载页面?

我究竟做错了什么?谢谢

编辑:忘了提到第二个脚本是由网站上的闪存文件请求的。Flash 文件将会话 ID 作为其参数之一,然后将其发送到第二个脚本以加载正确的会话(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 将始终在 session_start() 被调用时发送一个新的 cookie,无论当前会话 id 是否与设置的相同。

PHP 会话数组不断变化,因为这是您的代码指示它执行的操作

于 2012-09-25T11:03:12.767 回答