$_SESSION 変数を使用して、私の Web サイトに PHP 認証システムがあります。
フォームは、ユーザー名とパスワードをファイル「login.php」に送信します。次のように処理されます。
<?php include '../includes/sessionstart.inc.php'; ?>
<?php ob_start(); ?>
if($_POST){
$q = mysql_query("SELECT id, company FROM users WHERE username = '".mysql_real_escape_string($_POST['username'])."' AND password = '".md5($_POST['password'])."'");
if(mysql_num_rows($q) >= 1){
$f = mysql_fetch_Array($q);
$_SESSION['company'] = $f['company'];
$_SESSION['id'] = $f['id'];
$_SESSION['logedin'] = true;
session_write_close();
ob_clean();
header("Location: index.php");
}
その後、index.php が読み込まれ、「logedin」が true かどうかがチェックされます。
<?php include '../includes/sessionstart.inc.php'; ?>
<?php if(!isset($_SESSION['logedin'])) header('Location: login.php'); ?>
私の運用サーバーでは続行しますが、私の Wampserver では login.php に戻ります。Wampserver のページ読み込みが非常に遅いことに気付きました。そのため、ページが切り替わる前にセッション データが確実に保存されるように、session_write_close を含めましたが、役に立ちません。
session_start.inc.php の内容は次のとおりです。
<?php
session_start();
?>
そこにはもっと多くのコードがありましたが、現時点ではこれだけです。この問題は、インクルード ファイルの使用を開始する前にも存在していました。
誰かが私が間違っていることを知っていますか? Wampserver が私の SESSION データを次の PHP ファイルに送信しないのはなぜですか?