英語教育の経験の概要 PHP での SESSION の使用経験の概要。

WBOY
リリース: 2016-07-29 08:48:23
オリジナル
829 人が閲覧しました

SESSION セッションが開かれると、ブラウザーの session_id を一意に識別する Cookie が最初に送信されます (名前は PHPSESSID で、session_name() を通じて取得できます)。session.save_handler = files と同様に、指定されたファイル内に送信されます。サーバーのディレクトリ (temp など) サフィックスのないファイルを生成します。名前は

コードをコピーします コードは次のとおりです:


'sess_" + 'session_id';


 PHP中SESSION使用中的一点经验总结
これで基本的な設定は完了です。次に http リクエストが開始されると、ブラウザは最初に現在のドメイン名ですべての Cookie 名と値を送信します。これにより、サーバーは、誰が送信したかを混乱させることなく、Cookie 内の session_id に基づいてセッション ファイルを読み取ることができます。セッションが所属します。
このステップは次のとおりです:
SESSION は、一意の Cookie 変数 session_id をブラウザーに送信します。この session_id 変数には名前と値があります。変数名 (name) のデフォルトは PHPSESSID で、変数値 (value) は、rvag9m368vim7k8g4v7k2ank70 のような、apach によってランダムに生成された文字列です。通常、session_id はこの一意の文字列 rvag9m368vim7k8g4v7k2ank70 を指します。
具体的には、これは FF の HTTP 応答ヘッダーの下にあります:
 PHP中SESSION使用中的一点经验总结
session_start();
プログラム内の上記の文は、ブラウザが PHPSESSID の Cookie を送信しない場合は、Cookie を送信してそれを読み取ります。存在する場合は、この Cookie を使用して同じセッションを維持できます。
セッションがどのように機能するかがわかったので、サーバー側でファイル sess_rvag9m368vim7k8g4v7k2ank70 を手動で削除すると、セッションは無効になることが推測できます。ブラウザーの Cookie が無効であれば、セッションは引き続き無効になります。
手動の場合:
サーバー側では、
session_destroy() または session_unset()
を使用して無効化できます。
ブラウザ側:
直接
?setcookie('PHPSESSID','',123);
Cookie を期限切れにするか、別の方法で行うことができますが、すぐに期限切れにすることはできません
?session_set_cookie_params($time);//Current time スタンプの秒 (60 など) は、60 秒後に期限切れになることを意味します。タイムスタンプ + 設定した時間を使用しないでください。
上記はすべてセッションを早期に期限切れにすることに関するものですが、セッションを直接遅らせることは可能ですか?設定(session.gc_maxlifetime)の変更に加えて、php.iniのsession.gc_maxlifetimeに有効期限が設定されています。この際、session.gc_probability /session.gc_divisorが再利用される可能性があります。この時間に達して GC プロセスが開始されると、GC はセッション ファイルの変更時刻 (mtime) を読み取り、現在の時刻を減算した後の値が session.gc_maxlifetime よりも大きいことがわかり、すぐに削除します。この時点で、このセッションを維持する方法は session.gc_maxlifetime 内でのみ可能であることがわかりました。これにより、セッションはアクセスされるたびに変更される必要があります。 session.gc_maxlifetime よりも。
また、ブラウザの PHPSESSID の存続時間を設定する session.cookie_lifetime についても説明します。デフォルトは 0 です。ブラウザを再起動すると、Cookie は無効になり続けます。 FF以下。 session_set_cookie_params を使用して session.cookie_lifetime を設定できます。
?session_set_cookie_params(60);//60 s session_start();
session.gc_maxlifetime と session.cookie_lifetime は共同でセッションの存続期間を決定します。
------------------------------------------------- ------------
Firefox Cookie セッションの有効期限に関する情報を探していたところ、次の情報を見つけました。
これは明らかに仕様によるものです。この Bugzilla のバグを確認してください: https://bugzilla.mozilla.org/ show_bug .cgi?id=443354
Firefox には、Firefox を閉じるとすべてのタブを保存し、ブラウザを復元するとそれらのタブが戻る機能があります。これは、セッション復元と呼ばれるものです。それらのページのすべてのセッション Cookie も復元されます。ブラウザを一度も閉じていないかのように処理されます。これは、ブラウザがクラッシュした場合に元の状態に戻るという意味では理にかなっていますが、少し違います。セッション Cookie がクリアされることに慣れている Web 開発者にとっては当惑させられます。いつもタブで開いているサイトによって設定された古いセッション Cookie がいくつかあります。これをテストするには、ブラウザのすべてのタブを閉じてください。その場合は、サイトのセッション Cookie をクリアする必要があると思います。そうでない場合は、セッションの復元をオフにする必要があります。これは Firefox のセッション保存機能であり、FF はそのように設計されています。このテストは、ブラウザーのすべてのタブを閉じてから実行し、ブラウザーを閉じて再起動して、まだ保存されているかどうかを確認します。
以上、英語教育の経験の概要と、PHP での SESSION の使用体験の概要を紹介しましたが、PHP チュートリアルに興味のある友人の参考になれば幸いです。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート