2011-11-27 5 views
1

私は現在、PHPで奇妙な問題に直面しています。PHPセッションの変な動作

「ホームページ」であるindex.phpと、AJAXリクエストで呼び出されるスクリプトであるajax.phpの2つのスクリプトがあります。

session_start(); 
$_SESSION['test'] = "hello"; 

ajax.phpのindex.phpは

session_start(); 
if ($_SESSION['test'] == "hello") { 
    $_SESSION['test'] = "bleh"; 
    die(); 
} 

echo "here"; 

だから、私は、インデックスを更新し、その後、ajax.phpのAJAX呼び出しを行い、index.phpのに行きます。 PHPは、私は実際に空白のページを持っていることを期待し、次にリフレッシュし、 "ここ"を印刷した。 $ _SESSION ['test']が "hello"に設定されていないかのように、スクリプトは実際には決して死ぬことはありません。

アイデア?ありがとう。

+0

セッションを2回開始します。あなたは 'ajax.php'の' session_start'への呼び出しを削除する必要があります。 – Yahia

+0

if(!session_id())session_start();を追加しました。 ajax.phpでは、まだ同じ問題です。 – spacenick

+0

ajax呼び出し後、空であるかどうかを確認するためにindex.phpの "session_start()"の後に$ _SESSION配列を出力します。 – Eugene

答えて

0

私のシステムでこれを試しましたが、期待どおりに動作します。 ajax.phpページを直接呼び出して、期待どおりの結果が得られたかどうかを確認してから、最初のものを呼び出してみてください。

ブラウザでCookieセットが取得され、セッションが開始されるたびに新しいセッションが取得されるように無視されないようにしてください。

+0

両方のスクリプトでsession_id()が出力されました。同じですので、クッキーは問題ありません。 – spacenick

+0

スクリプト全体を印刷できます。コンテキストと連携するファイアバグを使用して、スクリプトの呼び出しがどのように行われているかを確認することもできます。 – Knubo

関連する問題