PHP のセッション ID
-
session_id()
関数でセッション ID を確認する -
PHP の
$_session[]
変数からユーザーセッション ID を設定および取得する -
PHP で
var_dump()
を使用してセッション ID を取得する - セッション ID と一意性
セッション ID の主な用途の 1つは、Web アプリケーション上のユーザーまたはイベントの識別です。この記事では、session_start()
や session_id()
などの組み込み PHP 関数を使用して PHP セッション ID を操作する方法について説明します。
session_id()
関数でセッション ID を確認する
セッション ID を確認する前に、session_start()
を使用して PHP セッションを開始する必要があります。その後、session_id()
関数を呼び出すことができます。この関数は、現在のセッション ID を返します。
<?php
session_start();
echo session_id();
?>
出力:
3rd5hnbqgjhi3fq4b2edsajq81
PHP の $_session[]
変数からユーザーセッション ID を設定および取得する
PHP$_SESSION
変数は、現在のスクリプトの PHP セッション変数を含む連想配列です。特定のキーと値のペアを配列に追加したり、配列から削除したり、$_SESSION
変数全体を空にしたりできます。
認証されたユーザーの詳細を $_SESSION
変数に保存できます。その前に、PHP セッションを開始する必要があります。セッションがアクティブになると、認証されたユーザーのセッションを登録できます。その後、セッション ID を使用して、システム全体でユーザーを追跡できます。ユーザーがログアウトすると、セッションを破棄できます。
次のコードブロックでは、ユーザーセッション ID を設定および取得する方法の詳細を説明します。
<?php
// Start the session
session_start();
// get the session id
$session_id = session_id();
// The username of the user. On most occasions,
// you'll get this from a MySQL query
$username = "DelftStack";
// Register a session for the user
$_SESSION['username'] = $username;
// Display the session id and the registered
// register
echo "The session id is: " . $session_id;
echo "<br /> The session has been registered to: " . $username;
?>
出力:
The session id is: d7ao75228pobka332fqeho10l3
The session has been registered to: DelftStack
セッション ID は上記のものとは異なることに注意してください。
次のコードでセッションを破棄できます。
<?php
if (isset($_SESSION['username'])) {
// Reset the session
unset($_SESSION);
// Destroy the session
session_destroy();
if (empty($_SESSION)) {
echo "Session destroyed...";
}
}
?>
出力:
Session destroyed...
PHP で var_dump()
を使用してセッション ID を取得する
var_dump()
関数は、$_SESSION[]
変数を含む変数に関する詳細をダンプします。セッションを開始し、セッション ID を変数に格納して、このプロセスを開始します。セッション ID が変数に含まれると、var_dump
を使用してダンプできます。
次のコードブロックは、var_dump()
を使用してセッション ID を取得する方法を示しています。
<?php
// Start the session
session_start();
// get the session id
$session_id = session_id();
// store the session id in the
// session variable
$_SESSION['id'] = $session_id;
// Dump the username
var_dump($_SESSION['id']);
?>
出力:
string(26) "7qfm3qvjj1vku6h78p73qh9jmn"
セッション ID と一意性
ユーザーの一意の識別子が必要な場合は、新しいセッションを開始しないことをお勧めします。そのとき、uniqid()
のような関数が機能します。ただし、アクティブなセッションがある場合は、session_id()
を使用できます。それでも、一意性のためにそれに依存しないでください。
その理由は次のとおりです。複数のタブがある Web ブラウザは同じプロセスを使用します。その結果、同じセッション識別子が使用されます。これは、異なるユーザー接続が同じ ID を持つことを意味します。
Habdul Hazeez is a technical writer with amazing research skills. He can connect the dots, and make sense of data that are scattered across different media.
LinkedIn