PHP セッションでデータが削除され、ログイン ページにリダイレクトされるという問題が発生しています。
これは、上から見たディレクトリ構造です。
- ログイン // ログイン/ログアウトするためのファイルが含まれています
- メイン // ログインしたユーザー向けのページが含まれています
- index.php // 完全に機能するフォームのログイン画面
ログインディレクトリ: check_login.php
メインディレクトリ: page1.php、folder1、および folder2
フォルダー 1: home.php、include1.php
フォルダー 2: include2.php
(これが非常に理解しにくい場合は申し訳ありません)
これは、check_login.php にログインするときに実行するコードです。
session_start();
$_SESSION["id"] = $id;
header("location:../main/page1.php"); //into main directory
すべてのページには同じスタイル (見出し、ナビゲーション、フッター) が含まれており、ページごとに変化する 1 つのメイン コンテンツ ブロックがあるため、表示するコンテンツに応じて、folder1 と folder2 に含まれる include を使用します。デフォルトでは、home.php は、folder1 にあるホームページに含まれています。他のページでは、include1.php や include2.php などのインクルードを使用しており、どちらのフォルダーからでも取得できます。
page1.php の上部:
session_start();
if($_SESSION["id"] == '')
{
header("location:../index.php");
}
page1.php から、folder1 にあるインクルードを含むページに移動すると、これは正常に機能します。ホームに戻ると、folder1 にもインクルードされますが、これは正常に機能します。どちらの場合も、セッションから id 変数を読み取ることができます。
ただし、folder2 にインクルードがあるページに移動すると、ログイン ページにリダイレクトされます。
何か案は?