这是我的代码。简单明了。
1)first.html
<body>
<?php
session_start();
...
$somearray = $Object->method($somevar);
$_SESSION["somearray"] = $somearray;
...
?>
</body>
1)second.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>
在localhost上完美运行代码。
有两个事实可以帮助你们想出这里的问题。
1)如果你在离线和在线状态检查页面的来源,你可以分别看到some_render_function('all the stuff from the json')
和some_render_function(NULL)
2)如果我检查我的共享服务器文件夹,我可以看到一个名为php_session
的目录,其中显然包含所有正确的文件(当我测试我的项目时打开的所有会话中的CORRECT数据)它)
任何提示?
答案 0 :(得分:1)
Session_start应该在任何输出之前。因此,将<?php
移动到文件的开头。否则,行为取决于服务器配置。
答案 1 :(得分:1)
您好session_start
(http://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>