0

何らかの理由でセッションに問題があります。今まで、セッションで問題が発生したことはありません。私は3つのページを持っています:

/index.php
/test/sessions.php
/test/sessions2.php

これらはすべて同じコードです (/test/sessions.php もセッション値を設定します):

<?php
if(!isset($_SESSION)){
    session_start();
}
var_dump($_SESSION);
echo(session_id());
?>

session.php(設定値):

<?php
session_start();
$_SESSION['foo'] = 'bar';
?>

コードは /test/ ディレクトリ内のページでは正常に機能しますが、インデックス ページでは機能しません。インデックス ページに移動すると、すべてのセッション データが消去されますが、前述のように、/text/ ディレクトリ内のページに問題があることに注意してください。何か不足していますか?

4

2 に答える 2

0

セッションCookieパスはまたはのよう/test .です./。に設定すると/、おそらくこれが修正されます。

于 2012-12-12T20:26:31.050 に答える
-1
if(!isset($_SESSION)){
    session_start();
}

あなたのコードは、セッションを開始する前に $_SESSION をチェックしています。

$_SESSION を有効にするには、セッションを開始する必要があります。

セッション データは、セッションの処理方法に基づいて、ディスクまたはデータベースに保存されます。

セッションを開始するたびに、保存されたデータから $_SESSION 変数が作成されます。

PHP スクリプトの実行が完了するたびに、$_SESSION 内のデータがシリアル化されてファイルまたは db に書き込まれ、変数が閉じられます。

したがって、セッションを開始しない限り、$_SESSION はありません。

session_start();

var_dump($_SESSION);

これは適切です

于 2012-12-12T20:32:55.837 に答える