セッションは Web アプリケーション内で使用されます。 PHP でセッションを使用すると、Web サイトのさまざまなページでデータを利用できるようになります。名前、住所などのデータまたは情報は、あるページから別のユーザー セッションに転送されます。このセッション情報は認証の目的で使用されます。 Cookie がクライアントのブラウザに保存されるのと同様に、セッション データはサーバーの一時ディレクトリに保存されます。
広告 このカテゴリーの人気コース PHP 開発者 - 専門分野 | 8コースシリーズ | 3 つの模擬テスト無料ソフトウェア開発コースを始めましょう
Web 開発、プログラミング言語、ソフトウェア テスト、その他
セッションを開始するには、session_start() 関数を使用します。セッションが開始されると、セッションはデフォルトで 24 分間続きます。これは 1440 秒です。セッションは、各ユーザーを識別する一意の番号であるセッション識別子または SID によって識別されます。
session_start() はセッションを開始するために使用される関数です。セッションがすでに存在する場合は、同じセッションが使用されます。それ以外の場合は、新しいセッションが作成されます。この関数は常に各ページの先頭で呼び出されます。関数が呼び出された後は、セッション変数への値の格納を開始できますが、その前はできません。 PHP はユーザーの情報をスーパーグローバル変数 $_SESSION に保存します。
セッションが保存されているディレクトリ パスを知るために、パスを保存するための session_save_path というディレクティブが php.ini ファイルにあります。また、session_id は現在のセッションに関連付けられた ID を出力します。これは、ランダムに生成された固有の番号です。
以下のプログラムを見てみましょう。
このプログラムでは、print_r($_SESSION) を使用してこのセッション変数を出力すると、設定されているすべてのセッション データが出力されます。出力は、キーと値のペアの連想配列の形式になります。
この例では、まず session_start() 関数を使用してセッションを開始し、変数を初期化して、_SESSION[‘name’] = $name を使用してそれをセッション変数に割り当て、スーパー グローバル配列を出力します。また、session_id() 関数を使用して、一意のセッション ID 値も出力します。
例
コード:
<?php // example to start session //beginning a session // no arguments are passed to this function session_start(); //initializing variables $name = 'Neha';$age = 28; //storing values in session $_SESSION['name'] = $name; $_SESSION['age'] = $age; // printing session valuesprint_r($_SESSION); //using the session id echo '<br > The session_id is '; echo session_id(); ?>
出力:
次に、セッションの削除の例を示します:
Session_destroy() 関数はセッションを破棄するために使用されます。この関数はセッション全体を破棄します。単一のセッション変数の設定を解除するには、unset() 関数を使用できます。
この例では、セッションが何を保持しているかを知るために、最初にセッション データを出力します。次に、unset() 関数を使用して、すでに設定されているセッション変数を破棄します。ここでは、名前や年齢などの設定されたセッション変数を両方とも破棄します。破棄した後、セッションを再度出力すると、空の配列が返されることがわかります。これは、変数の設定が解除され、セッションが存在しないことを意味します。
コード:
<?php //example to unset session variables //starting a session session_start(); print_r($_SESSION); //before destroying the session //printing the session unset($_SESSION['name']); unset($_SESSION['age']); echo 'Session destroyed'; //after destroying the session //printing the session print_r($_SESSION); ?>
出力:
次の例では、セッションを破棄しています。
セッションを破棄するには、まずセッション値を確認してからセッションを破棄します。そして再度セッションを出力します。セッションは存在しないため、空の配列になります。
コード:
<?php //example to destroy session //starting a session session_start(); //to completely destroy a session session_destroy(); echo 'Session destroyed'; //after destroying the session //printing the session echo '<br />'; print_r($_SESSION); ?>
出力:
ここで、プログラムの最初の行で、セッションを開始し、カウント変数を 0 に初期化していることがわかります。次に、セッション変数が設定されているかどうかを確認します。ここでは、セッション名 page_views が設定されているかどうかの 1 つの条件を確認します。はいの場合はカウント変数値を 1 つインクリメントし、そうでない場合はカウント値を 1 に初期化します。
コード:
<?php session_start(); $count = 0; if(!isset($_SESSION['page_views'])) { $_SESSION['page_views'] = 1; $count = $_SESSION['page_views']; } else { $_SESSION['page_views'] = $_SESSION['page_views'] + 1 ; $count = $_SESSION['page_views']; } ?> <html> <head><title>Finding count of page views</title></head> <body> <?php echo '<br>'. 'The count of page views '. $count; ?> </body> </html>
出力:
PHP で自動セッションを有効にするには、php.ini という構成ファイルを変更する必要があります。
php.ini はデフォルトの設定ファイルです
セッションは自動的に自動的に開始されるわけではありません。セッションを自動的に機能させるには、次の操作を行う必要がありますが、これが完了すると、セッションはすべてのファイルに対して自動的に開始され、デフォルトの時間が経過すると閉じられます。
php.ini ファイル内で、
を検索します。session.auto_start = 0
このように値を 1 に設定します
session.auto_start = 1
これにより、PHP がセッションを自動的に開始することができます。
セッションの重要性の一部を以下に記載します。
この記事では、セッションとは何か、セッションの仕組み、セッションの作成方法、特定のセッションの削除方法について説明します。
また、ディレクティブ session.auto_start() の値を 1 に設定することでセッションを自動的に開始する方法についても説明されています。
続いて、セッションを利用してページが閲覧された回数をカウントする方法を例を挙げて説明しました。また、セッションの重要性とそれがさまざまな目的にどのように役立つかについても説明されています。
以上がPHP でのセッションの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。