PHP でのセッション

PHPz
リリース: 2024-08-29 12:42:28
オリジナル
1103 人が閲覧しました

セッションは Web アプリケーション内で使用されます。 PHP でセッションを使用すると、Web サイトのさまざまなページでデータを利用できるようになります。名前、住所などのデータまたは情報は、あるページから別のユーザー セッションに転送されます。このセッション情報は認証の目的で使用されます。 Cookie がクライアントのブラウザに保存されるのと同様に、セッション データはサーバーの一時ディレクトリに保存されます。

広告 このカテゴリーの人気コース PHP 開発者 - 専門分野 | 8コースシリーズ | 3 つの模擬テスト

無料ソフトウェア開発コースを始めましょう

Web 開発、プログラミング言語、ソフトウェア テスト、その他

セッションを開始するには、session_start() 関数を使用します。セッションが開始されると、セッションはデフォルトで 24 分間続きます。これは 1440 秒です。セッションは、各ユーザーを識別する一意の番号であるセッション識別子または SID によって識別されます。

PHP でセッションを作成するには?

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();
?>
ログイン後にコピー

出力:

PHP でのセッション

PHP でセッションを削除するには?

次に、セッションの削除の例を示します:

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 でのセッション

セッションを破棄するには?

次の例では、セッションを破棄しています。

セッションを破棄するには、まずセッション値を確認してからセッションを破棄します。そして再度セッションを出力します。セッションは存在しないため、空の配列になります。

例 #1

コード:

<?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);
?>
ログイン後にコピー

出力:

PHP でのセッション

ここで、プログラムの最初の行で、セッションを開始し、カウント変数を 0 に初期化していることがわかります。次に、セッション変数が設定されているかどうかを確認します。ここでは、セッション名 page_views が設定されているかどうかの 1 つの条件を確認します。はいの場合はカウント変数値を 1 つインクリメントし、そうでない場合はカウント値を 1 に初期化します。

例 #2

コード:

<?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 で自動セッションを有効にする方法?

PHP で自動セッションを有効にするには、php.ini という構成ファイルを変更する必要があります。

php.ini はデフォルトの設定ファイルです

セッションは自動的に自動的に開始されるわけではありません。セッションを自動的に機能させるには、次の操作を行う必要がありますが、これが完了すると、セッションはすべてのファイルに対して自動的に開始され、デフォルトの時間が経過すると閉じられます。

php.ini ファイル内で、

を検索します。

session.auto_start = 0

このように値を 1 に設定します

session.auto_start = 1

これにより、PHP がセッションを自動的に開始することができます。

セッションの重要性

セッションの重要性の一部を以下に記載します。

  • $_COOKIE と同様に、$_SESSION があります。これはスーパーグローバル変数であり、サーバー上に保存されます。
  • ユーザーのブラウザが Cookie をサポートしていない場合でも、セッションを使用できます。各セッションには、ユーザーの Web サイトへのアクセスに応じて、一意の ID が割り当てられます。
  • データの保存という点では、セッションは Cookie が保存できるよりも多くのデータを保存します。
  • セッションは、あるページから別のページに情報を運ぶために使用されます。
  • セッションは、Web サイトへの訪問者数を取得するために使用できます。
  • セッションは認証目的にも使用されます。
  • 生成されるセッション ID は一意です。

結論

この記事では、セッションとは何か、セッションの仕組み、セッションの作成方法、特定のセッションの削除方法について説明します。

また、ディレクティブ session.auto_start() の値を 1 に設定することでセッションを自動的に開始する方法についても説明されています。

続いて、セッションを利用してページが閲覧された回数をカウントする方法を例を挙げて説明しました。また、セッションの重要性とそれがさまざまな目的にどのように役立つかについても説明されています。

以上がPHP でのセッションの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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