ログインページ($ _SESSION ['login'])からセッション変数を設定しています。徹底的にテストしました。変数は確実に作成され、正しい値が保存されています($ _SESSION ['login'] = '1')が、Chrome、Opera、またはFirefoxを使用している次のページで変数が認識されません-奇妙なことに、SafariとInternetExplorerで期待するのと同じスクリプトが機能します。
どんな助けでも大歓迎です-私はこれをしばらくの間理解しようとしていて、それを得ることができません-私はここで完全に途方に暮れています。
これがステップバイステップです-
<?php
// log in page
// if logged in successfully set the session variable
session_start();
if (// log in credentials good) {
$_SESSION['login'] = '1';
header('location:inside_page.php');
// echo $_SESSION['login'] ;
// ----------------------
// commenting out the redirect and echoing
// the session variable works as expected
// in IE, Safari, Chrome, Opera and Firefox
}
?>
これが私のCheck_loginクラスです-次のページ(inside_page.php)でインスタンス化されます-
クラス:
<?php
if (! defined('EXT')){ exit('Invalid file request'); }
class Check_login {
private $login = null ;
function __construct() {
session_start();
$this->login = $_SESSION['login'];
if ($this->login != '1') {
header('location:../index.php');
}
// $login = $this->login ;
// echo $login ;
// $session = $_SESSION['login'];
// echo $session ;
// ----------------------
// commenting out the redirect and echoing the
// session variable shows 1 in IE and Safari, but
// empty in Chrome, Opera and Firefox
}
}
?>
ページ(inside_page.php):
<?php
require('../lib/Check_login.php');
session_start();
$login = new Check_login;
?>
繰り返しになりますが、どんな助けでも本当に素晴らしいでしょう。ありがとう!