0

ローカルの Windows XP PC で xampp 1.7.3 を実行しています。phpinfo() は、セッションが有効であることを確認します。

「login.php」では、次のコードを実行する必要があります。

session_start();
$_SESSION['user'] = "user";
//var_dump($_SESSION);
header("Location: index.php");

「index.php」には、次のコードがあります。

session_start();
var_dump($_SESSION);

ただし、index.php にアクセスしても何も出力されず、$_SESSION 情報が失われているようです (login.php の var_dump のコメントを外すと出力されるため)。php.ini で、session.save_path を確認しました。このパスで、login.php に保存されているセッション情報を含むセッション ファイルを見つけることができます。しかし、セッション情報が index.php に引き継がれないのはなぜですか?? ローカルホストで実行しているため、これは何らかの理由ですか?

4

1 に答える 1

0

$_SESSION が機能するには、ヘッダーを設定する必要があるため、これが機能するとは思いません。

スクリプトの途中で header() を設定すると、$_SESSION が完全に適用されなくなります。

したがって、header() を使用して場所を index.php に変更しないでください。login.php にリンクを配置し、それをクリックして index.php に移動し、セッションが適切に構成されていることを確認できます。

ロード後に JavaScript を使用してページを変更することもできますが、PHP の header() は使用しないでください。

于 2012-07-25T01:41:00.647 に答える