PHP会话数组不断变化

时间:2012-09-25 10:39:11

标签: php arrays session

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

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

我做错了什么?感谢

编辑:忘记提及网站上的Flash文件请求第二个脚本。 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']);
        }
?>

1 个答案:

答案 0 :(得分:1)

请参阅PHP文档

  

注意:使用会话cookie时,指定session_id()的id将始终在调用session_start()时发送新cookie,无论当前会话ID是否与正在设置的会话ID相同。

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