0

这是我的代码。干净利落。

1) first.html

<body>
    <?php
    session_start();
    ...
    $somearray = $Object->method($somevar);
    $_SESSION["somearray"] = $somearray;
    ...
    ?>
</body>

1)第二个.html

<body>
    <div id="map_canvas">
        <script language="javascript" type="text/javascript">
        <?php session_start(); ?>
        some_render_function(<?php echo json_encode($_SESSION["somearray"]); ?>);
        </script> 
    </div>       
</body>

本地主机上完美运行的代码。

有两个事实可以帮助你们找出问题出在哪里。

1)如果您离线和在线查看页面second.html的来源,您可以分别看到some_render_function('all the stuff from the json')some_render_function(NULL)

2)如果我检查我的共享服务器文件夹,我可以看到一个目录php_session,其中显然包含所有正确的文件(在我测试我的项目时打开的所有会话中,其中包含正确的数据)

有什么提示吗?

4

2 回答 2

1

Session_start 应该在任何输出之前。所以,移动<?php到文件的开头。否则,行为取决于服务器配置。

于 2012-04-20T08:30:32.657 回答
1

您好session_starthttp://php.net/manual/en/function.session-start.php)应该始终是您页面上的第一个参数...

例子

第一页

<?php session_start();?>
<html>
<head>
<title>First</title>
</head>
<body>
    <?php
    $somearray = $Object->method($somevar);
    $_SESSION["somearray"] = $somearray;
    ?>
</body>

</html>

第二页

<?php session_start(); ?>
<html>
<head>
<title>Second</title>
</head>
<body>
    <?php
    var_dump($_SESSION["somearray"]);
    ?>
</body>
</html>
于 2012-04-20T08:34:10.883 回答