ホームページ  >  記事  >  バックエンド開発  >  PHP SESSION メカニズム

PHP SESSION メカニズム

WBOY
WBOYオリジナル
2016-06-20 12:35:51937ブラウズ

からの原文



PHP セッション変数は、ユーザー セッションに関する情報を保存したり、ユーザー セッションに関する情報を変更したりするために使用されます。ユーザーセッションの設定。 Session 変数によって保持される情報はシングルユーザーのものであり、アプリケーション内のすべてのページで利用できます。ブラウザで Web サイトにアクセスすると、Web サイトのバックエンドが応答を開きます。この応答はセッションです。重要な情報の一部を保存できます。起動時とオフ時に ID が割り当てられます。情報は後で使用できるようにサーバーに保存されます。非常に多くのメリットと強みがあります。しかし…このページを閉じると。すべてが解放前に戻り、あなたを忘れてしまいます。データベースに保存することによってのみ、将来あなたを本当に思い出すことができます。セッションの動作メカニズムは次のとおりです。各訪問者は一意の ID を持ち、情報は UID に基づいてサーバーに保存されます。 UID は Cookie に保存され、URL を通じて送信できます。この一意の ID を使用すると、現在アクセスしている Web ページのどこにジャンプしても ID を記憶できるため、サーバーに保存されている正確な情報 (ユーザー名、ショッピング カートなど) が提供されます。

セッションの使用

セッションを使用するには、まずサーバーがセッションをサポートしているかどうかを判断する必要があります。 PHP 構成情報は phpinfo() を通じて表示できます。セッション モジュールの session_support 値が構成情報に存在するかどうかを確認してください。値が有効であれば、セッションを正常に使用できることを意味します。セッション モジュールがない場合は、まず php.ini に移動してセッション コンポーネントを有効にする必要があります。加えて。 Session.save_handle = php.ini 内のファイルは通常どおりセッションを使用できます。

session_start()

session_start() 関数は 100db36a723c770d327fc0aef2ce13b1 タグの前に配置する必要があり、session_start() の前に出力は許可されません。 session_start() はセッションメカニズムの開始です。セッションは開始後、ガベージ コレクション メカニズムをオンにします。セッションはファイルに保存されるため、リサイクルしないと、大量に使用すると一連のシステム問題が発生します。 PHP 独自のガベージ コレクション メカニズムはセッションに対して無効です。セッションのリサイクルとは、保存されているファイルを削除することを指します。セッションがリサイクルされる確率は php.ini で定義されます。デフォルトの session.gc_probability システムのデフォルトは 1 ですが、一部のシステムの session.gc_probability 値は 0 です。これは、リサイクルの確率が 0 であることを意味します。この時点で、システムは cron スクリプトを通じてガベージ コレクション メカニズムを実装します。また、セッション設定項目には session.gc_maxlifetime という項目があり、このときセッションの有効期限は 1440、24 分に設定されています。セッションのリサイクルはこれに基づいて行う必要があるため、これを小さすぎる設定にすることはお勧めできません。セッションが開かれた後、セッションに値を割り当てることができます。サーバーはセッション変数を保存します。セッション変数を保存および取得する正しい方法は、$_SESSION 変数を使用することです。

ストレージセッション

<?php$_SESSION['key']  = 'value';?>

スクリプトが実行されると、セッションは指定された session_id ファイルに保存されます。すでに存在する場合は、新しいファイルの作成が必要になる場合があります。 session_id ファイルは、php.ini で設定されたリサイクル時間内に破棄されます。

セッションの読み取り

次のようにセッションを読み取ります:

<?php$_SESSION['key'];?>

セッション キーワード $_SESSION['key value'];

セッションの破棄

<?phpunset($_SESSION['key']); //销毁某个指定键值unset($_SESSION)         //销毁整个session?>

一部のセッション データを削除するには、unset() の使用に加えて、session_destroy() 関数を使用することもできます。

ケース:

セッションを使用してユーザーのログインとログアウトを実現する セッションの機能の 1 つはセキュリティであるため、ログインを実現するためにセッションを使用することは良い解決策になります。ログインプロセス全体は大まかに次のとおりです。ユーザーがログイン ページにアクセスします ===>> 正しいユーザー アカウントのパスワードを入力します ===>> サーバー側スクリプトが正常に検証された後、セッションが開き、ユーザー ID ($_SESSION['uid ']) とユーザーが保存されます。名前 ($_SESSION['user_name']) ===>> の場合は、($_SESSION['user_name']) を使用してユーザー名を表示します。必要に応じて、 $_SESSION['u_id' ] を使用できます。 ユーザー ID===>> ユーザーがログアウトするまで待ちます (unset($_SESSION))。 ログイン ページには次のコードが含まれます:

<?phpsession_start();//开启session$_SESSION['user_name'] = $_POST['user_name'];?><html>登录表单</html>

ログインに成功した後、ジャンプします。商品の購入や取引注文の生成など、他のページでユーザー情報が必要なページでは、次の方法でユーザー情報を取得できます

<?phpsession_start(); //首先需要开启session//读取用户信息$user_name = $_SESSION['user_name'];//根据用户名查询到这个用户的信息?>

その後、ユーザーがブラウザを直接終了すると、またはウェブサイトを閉鎖します。指定されたリサイクル時間内に、セッションはリサイクルのために自動的にログアウトされます。ユーザーが手動でログアウトしたい場合は、次の操作を行うことができます。

<?phpsession_start();unset($_SESSION);//注销所有session?>

これは、基本的なユーザーのログインおよびログアウト システム プロセスです。安全な取り扱いができる場所はたくさんあります。ここでは一つ一つ説明しません。元のテキストは

からのものです
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。