0

私は本当にこれについて机の上で頭を叩いています:

page1 にセッション データを保存しています。

ここに初期コードがあります:

<?php
session_start();

$SID = session_id();

$newToken = md5(uniqid(mt_rand(), true)); 
$_SESSION['donate-token'] = $newToken;

セッション データが保存されていることを確認できるように、page1 の下部で var ダンプを実行しました。

次に、サーバーのファイル システムをチェックし、セッション ファイルが存在し、データがそこに保存されていることを確認しました。

これが page2 の始まりです (いくつかのデバッグ コードが追加されています)。

<?php
session_start();
echo '<pre>';
echo 'session id: ', session_id(), "\n";

$sessionfile = ini_get('session.save_path') . '/' . 'sess_'.session_id();
echo 'session file: ', $sessionfile, ' ';

var_dump($_SESSION);
echo "</pre>\n";

このページの上部に表示されるのは、まったく異なるセッション ID と空のセッション配列です。

あるページでセッションを書き込めるのに、次のページで読めない理由がわかりません!

4

2 に答える 2

0

スクリプトがブラウザに送信している Cookie を確認してください。(ほとんどのブラウザーには、保持している Cookie を検査するツールが組み込まれています。通常、独自のシステムで開発している場合は、ドメイン (例: localhost) で検索できます。)

Cookie がブラウザに保存されていない場合は、ブラウザのセキュリティ設定を確認してください。Cookie が保存されているが、2 番目のページに使用できないパスがある場合は、セッション Cookie を制限の少ないパスに構成するか、2 つのスクリプトを同じディレクトリに配置してください。

于 2013-01-09T20:09:54.503 に答える
0

page2 で session_start() を呼び出す前に、例外を追加してみてください。これを試して:

$a = session_id();
if(empty($a)) session_start();
于 2013-01-09T19:22:51.500 に答える