0

これは私のコードです。簡潔でシンプル。

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>

ローカルホストで完全に機能するコード。

ここで問題がどこにあるかを考え出すのに役立つ2つの事実があります。

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>

2ページ目

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