セッション処理は PHP の非常に重要な概念であり、Web サイトまたはアプリケーションのすべてのページでユーザー情報を変更しないようにすることができます。以下の記事ではPHPにおけるセッション処理の基礎知識を解説していますので、ご参考になれば幸いです。
PHP のセッションとは何ですか?
セッションは、Web サイトまたはアプリケーションを閲覧するユーザーを識別するために、さまざまな Web ページ上の情報を保持するメカニズムです。 [ビデオチュートリアルの推奨: PHP チュートリアル]
誰もが次の疑問を抱くはずです: なぜ Web サイトにはセッションが必要なのでしょうか? この問題について議論する前に、HTTP プロトコルがどのように機能するのかを振り返って見る必要があります。
HTTP プロトコルはステートレス プロトコルです。つまり、サーバーはリクエスト間で特定のユーザーを記憶することができません。たとえば、Web ページにアクセスすると、サーバーは要求されたページのコンテンツを提供することだけを担当します。そのため、同じ Web サイト上の他のページにアクセスすると、Web サーバーは各リクエストを互いに無関係であるかのように個別に解釈します。サーバーは、すべてのリクエストが同じユーザーからのものであることを知る方法がありません。
次の図は、HTTP プロトコルを簡単に説明したものです。
#このプロセスで、特定のユーザーの情報を表示したい場合は、すべてのリクエストでユーザーを認証する必要があります。リクエストを行うたびに、認証のためにページにユーザー名とパスワードを入力する必要がある場合を想像してみてください。これは非常に面倒で、まったく実用的ではありません。ただし、この時点ではセッションが役に立ちます。
セッションを使用すると、ユーザーは単一のサイトまたはアプリケーションのさまざまなページ間で情報を共有できるため、状態の維持に役立ちます。これにより、すべてのリクエストが同じユーザーからのものであることがサーバーに認識され、サイトがユーザー固有の情報や設定を表示できるようになります。
次の図は、HTTP プロトコルがセッションでどのように使用されるかを示しています。
#PHP はセッションをどのように処理しますか?
1. セッションの開始
セッション変数を処理する場合は、セッションが開始されていることを確認する必要があります。 PHP でセッションを開始するには、いくつかの方法があります。 1)、session_start 関数を使用します。 これは最も一般的な方法で、session_start 関数によってセッションが開始されます。<?php // 启动session session_start(); // 操作会话变量 ?>
session.auto_start = 1
2. セッション ID を取得します
サーバーは、新しいセッションごとに一意の ID を作成します。セッション ID を取得したい場合は、次のスニペットに示すように session_id 関数を使用できます。<?php session_start(); echo session_id(); ?>
<?php session_id(YOUR_SESSION_ID); session_start(); ?>
3. セッション変数の作成
セッションが開始されると、$_SESSION は対応するセッション情報を使用してスーパーグローバル配列を初期化します。デフォルトでは、空の配列で初期化されます。キーと値のペアを使用して、より多くの情報を保存できます。 コード例を通じてセッション変数を初期化する方法を見てみましょう。<?php // 开启会话 session_start(); // 初始化会话变量 $_SESSION['logged_in_user_id'] = '1'; $_SESSION['logged_in_user_name'] = 'Tutsplus'; // 访问会话变量 echo $_SESSION['logged_in_user_id']; echo $_SESSION['logged_in_user_name']; ?>
4. セッション変数の変更と削除
通常の PHP 変数を変更するのと同じように、アプリケーションで以前に作成したセッション変数を変更または削除できます。 セッション変数を変更する方法を例として見てみましょう。<?php session_start(); if (!isset($_SESSION['count'])) { $_SESSION['count'] = 1; } else { ++$_SESSION['count']; } echo $_SESSION['count']; ?>
在上面的脚本中,我们首先检查了是否设置了$_session['count']变量。如果没有设置,我们将设置为1,否则我们将增加1。因此,如果多次刷新此页,可以看到计数器每次递增一个!
另一方面,如果想要删除会话变量,可以使用unset函数,如下面的代码段所示:
<?php // 开启会话 session_start(); // 初始化会话变量 $_SESSION['logged_in_user_id'] = '1'; // 取消设置会话变量 unset($_SESSION['logged_in_user_id']); ?>
这样,我们就无法再访问$_SESSION[‘logged_in_user_id’]变量了。因为它已被unset函数删除。
5、销毁会话
在上面我们知道可以使用unset函数来删除特定的会话变量;那么如果要一次删除所有与会话相关的数据,我们要怎么办?
其实很简单,我们可以使用session_destroy函数。
下面我们来看看session_destroy函数是如何工作的。
<?php //开启会话 session_start(); // 假设我们已经在另一个脚本中初始化了几个会话变量 // 销毁此会话中的所有内容 session_destroy(); ?>
说明:session_destroy函数删除存储在当前会话中的所有内容。因此,当存储在磁盘上的会话数据被session_destroy函数删除时,我们将从后续请求中看到一个空的会话变量。
注:通常,在用户注销时才会使用session_destroy函数。
以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。更多精彩内容大家可以关注php中文网相关教程栏目!!!
以上がPHPでセッション処理を行うにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。