2012-04-30 7 views
0

私はPHPセッションを使用するサイトを開発していますが、$ _SESSION配列は "/index.php"ファイル名が存在する場合にのみ機能します。 "/"と "/index.php"は同じファイルを指していますが、何らかの理由でPHPセッションは "/index.php"がURLアドレスに視覚的に存在する場合にのみ機能します。私はWebを検索してこれがなぜであるのか答えを見つけていない。なぜこれが起こっているのか?PHPセッションは実際のindex.phpを表示しているときにのみ機能しますか?

*注:セッションはLocalhostの "/"と "/index.php"で動作しますが、実際のサーバーでは動作しません。

+0

すべてのPHPファイルでセッションを開始しましたか? –

+0

セッションのCookieの設定を確認し、FirefoxのHTTPFoxやFirebugのNetTabなどのスニッファを使用して、ヘッダーの内容を確認します。 –

+0

@vipin: '/'と '/ index.php'はどちらもSAMEスクリプトをロードします。 –

答えて

0

同じドメインをお探しですか?私のウェブサイトにこの問題がありました.www.example.orgはexample.orgと同じドメインではないことに注意してください。

また、PHPSESSIDのCookieが2つのURLで同じであることを確認してください。そうでない場合は、別のセッションをロードしています。

+0

私はwwwを追加しようとしました。ドメインの前には何の違いもなく、私もPHPSESSIDをチェックしていて、どちらも同じです。私はindex.phpファイル自体にテストセッション変数を作成し、その変数は "/"と "/index.php"の両方に表示されますが、異なるPHPファイルで作成されたセッションは "/ index .php "ファイル? –

+0

ディレクトリインデックスがindex.phpであることは確かですか? なぜそれがそうでないかはわかりませんが、それは私が考えることができる唯一の論理的なことです。 – Shane

+0

ポジティブです。私はなぜそれが動作しているとして私は困っています... –

関連する問題