2012-03-13 22 views
1

ブラウザでクッキーが無効になっていると、Webサーバー上のセッションは ではありません。つまり、次のページに進むと、新しい セッションIDが受信されます。私がリロードするすべてのページで、私は新しいセッションIDになります。 有効になっているクッキーは有効です。 WebサーバのPHPセッションはクッキーなしで永続的ではありません

Specifcations:私のXAMPPのインストールのすべての作品にローカルにSUSE Linuxの

  • PHPバージョン5.3.3
  • Apacheのバージョン2.2.13
  • Webサーバ。

    アップデート:私は、各ページの設定次いる

    • ini_set( 'session.use_cookies'、 '0');
    • ini_set( 'session.use_trans_sid'、 '1');
    • session_start();

    セッションIDはURIに存在しますが、ページのセッションIDを確認すると、新しいIDであり、リロードごとに別のIDになります。

+0

他の人は言っています。 HTTPはステートレスなので、セッション内のある要求から次の要求にこのコンテキスト(一般にSIDとして知られています)を渡すためのメカニズムが必要です。標準的なアプローチは、クッキーとリクエストパラメータsidの両方を受け入れることです。また、現在のリクエストにCookieが設定されていない場合は、セッションコンテキストが必要なすべてのサイトリンクにパラメータとしてsid = XXXを追加します。 *ただし*、これは未知のユーザーがポストセッションリンクを行うことができるという欠点があります。これはフォーラムで何度もやりました。 – TerryE

答えて

5

はい、もちろんです。 HTTPはステートレスなプロトコルなので、セッションIDはクッキーに格納することでセッションをユーザーにリンクします。このクッキーを削除(または拒否)すると、セッションが終了します。

+0

+1キャプテンは救助者には明らかです:D – Hannes

+0

ログインしたい場合は、ほとんどのサイトがあなたのクッキーを元に戻すのに悲鳴を上げる理由があります。^ _^ – user980058

+0

セッションはクッキーなしで動作することになります。 – user1266069

3

Cookieをしたくない場合は、URLにセッションIDを送信する必要があります。

あなたはPHP 4.2.0を使用しているか、後で、あなたがPHPを構築するときに、手動でそれを を有効にする必要がない限り、 。 Unixでは、 - enable-trans-sidを に設定します。このビルドオプションと実行時オプション session.use_trans_sidが有効になっている場合、相対URIはセッションIDを含む に自動的に変更されます。

http://es.php.net/manual/en/session.idpassing.php

session.use_cookiessession.use_only_cookiesを参照してください。

この方法では、リンクを共有するだけでプライベートデータを簡単に逃すことができ、今日はほとんど誰もそれを使用しません。

+0

私はあなたのリンクからカウンターでスクリプトを試しました。しかし、それはクッキーの仕事で、クッキーなしではうまくいきません。私たちにとっては、ウェブサイトはクッキーなしでも動作する必要があります。 – user1266069

+0

回答に記載されている情報を理解できない場合は、お気軽に説明してください。しかし、同じ質問を何度も繰り返さないでください。あなたのサイトに貼り付けることができるすぐに使えるコードがほしいと思っていることを示唆してください。 –

関連する問題