2

セッションを再開したい。だから私はセッションIDを渡し、次のようにセッションを再開しようとしています:

    session_save_path($_SERVER["DOCUMENT_ROOT"].'/mysessions');
    if(!empty($_POST['session_id'])) { 
      session_id($_POST['session_id']);  // $_POST['session_id'] = "4dkwkeiugraqhfpeq745l2c2a1";
      session_start();
    }

    $session_var = $_SESSION['property_name']; // <- null even though there was something there

    ob_start();
    var_dump($_SESSION);
    $session_data = ob_get_clean(); // $session_data = NULL

sess_4dkwkeiugraqhfpeq745l2c2a1セッションを保存しているセッション フォルダに物理セッション ファイル ' ' が存在することがわかりました。3つ目はデータです。ただし、セッションは再開されません。を呼び出した後session_start()$_SESSION変数はそこにありません。

ここで何が欠けていますか?

4

1 に答える 1

1

ここで何が欠けていますか?

それは言うのは難しいです。session_id()セッション ID を変更する正しい機能ですが、session_save_path()別の機能である可能性があります。セッションがディスク上にあると思いますが、それは間違ったディレクトリです。

または、別の保存ハンドラーでさえ、ディスクに保存するのではなく、データベースに保存します。

$_SESSIONまた、コード内には、が実際に空であるかどうかをテストするチェックが表示されないため、どこでチェックするかが明確ではありません。session_start()データがロードされたかどうかを知るために、これを直後にテストする必要があります。

于 2013-03-07T18:15:50.753 に答える