私はいくつかのページにわたってセッション変数を使用しようとしています。しかし、変数は、設定されている元のページからサーバー上の別のページに移動すると消えます。変数が最初のページに設定されていることを確認しましたが、後のページで変数にアクセスしようとすると値がありません。 session_id()
にアクセスすると、最初のページで設定したものとは異なります。IEがPHPセッション変数を渡していない
ここで私が何をしようとしています何の簡易版です: (セッション変数が設定されている最初のページ)
<?php
ini_set("display_errors", "1");
error_reporting(E_ALL);
session_start();
$_SESSION['id'] = session_id();
header('Location: pagetwo.php');
die();
?>
(私はセッション変数にアクセスしようとする2ページ目)
<?php
ini_set("display_errors", "1");
error_reporting(E_ALL);
session_start();
echo "SESSION[id] = ".$_SESSION['id']."<br>";
?>
は、
$_SESSION['id']
白紙に戻り、私は述べ出力誤差があります。
を注意:未定義のインデックス:idは5行目のC:\ Program Files \ Apache Software Foundation \ Apache2.2 \ htdocs \ pagetwo.phpにあります。
ここでは少し奇妙なことがあります。これはすべてのブラウザで起こるわけではありません(IE8とFirefox 3のみ)。 Chrome 15とFirefox 7のセッション変数にアクセスできます。また、ApacheとPHPを実行する2つの異なるサーバーがあります。私がこれらの問題を抱えているサーバーはPHP 5.2.17を実行しますが、PHP 5.2.9を実行している他のサーバーでは、すべてのブラウザのすべてのページでセッション変数にアクセスできます。
PHP.iniファイルは2つのサーバーで異なると思われますが、それらのセッション設定は同じです。
誰かがIE8がPHP 5.2.17でセッション変数にアクセスできない似たような問題に遭遇したのかどうかはわかりませんが、過去2日間フォームを検索してこのようなものを見つけられませんでした。私はちょうど非常に単純なものを見逃していると思うし、誰かが私を正しい方向に向けることができると思っています。
は、開発ツールを使用して、あなたはおそらく、セッションクッキーはIEに保存されていないことがわかります...セッションデータは、しかし、ブラウザ固有ではありませんセッションの前提はすべてクッキーに基づいています。また、例外を避けるためにisset()を使うべきです。 – Fosco