セッションのこれら2つに違いがあるのはなぜですか?ログインフォームがあり、セッションをページに渡す場合(つまり:) settings.php
。localhost/settings.php
別のページに移動して戻ってきた場合、セッションが機能する場合。しかし、そうであれば127.0.0.1/settings.php
、セッションは最初のパスで機能し、別の場所にリダイレクトして戻ると、もうそこにはありません。
これは他の人にも起こりますか?それともこれは私だけですか?
ありがとう
多分これが役立つでしょう: http://www.issociate.de/board/post/179979/Cookie_Problems_on_Localhost.html
「localhost」と任意の IP の両方が、Cookie の有効なドメイン識別子として受け入れられません (RFC に従って)。
および 127.0.0.1 != ブラウザーの localhost。ブラウザは、127.0.0.1 から設定された Cookie を localhost に送信しません。これらは異なるドメインであるためです。
ps 実際には、1 つの IP に多くのドメインが存在する可能性があります。もちろん、セキュリティ上の理由から、ブラウザーはすべての Cookie をまとめて送信することはできません (あなたの Web サイトからの Cookie が、同じ IP を持つ virtualhosting 上のすべての Web サイトにブラウザーによって送信されると想像してください)。
@true の回答で参照されている問題のため、開発では通常、dev.localhost.net のような偽のローカル ドメインを作成し、hosts ファイルを使用して、これをマシンの IP アドレスまたは 127.0.0.1 にマップします。これは、セッション/Cookie の問題を回避するのに役立ちます。