関数の概要
session_name は、PHPで使用するセッションの名前を取得または設定するための関数です。セッション名は、ブラウザのクッキーに保存されるセッションIDを識別するための名前で、デフォルトは PHPSESSID です。この関数を使うことで、複数のアプリケーションでセッション名を分けたり、セキュリティ向上のためにカスタム名を設定したりすることができます。
パラメータの説明
name(省略可能):セッション名として設定する文字列。新しいセッション名として使いたい名前を指定します。引数を省略すると、現在のセッション名を取得します。
戻り値
引数を指定しない場合は、現在のセッション名(文字列)を返します。引数に新しい名前を渡すと、その名前をセッション名として設定し、成功すれば新しいセッション名を返します。設定は、session_start() を呼び出す前に行う必要があります。設定に失敗した場合は FALSE を返します。
使用例
現在のセッション名を取得する
<?php
echo '現在のセッション名: ' . session_name();
?>
現在のセッション名を文字列で取得して表示します。特にセッション名を変更していなければ、通常は “PHPSESSID” が表示されます。
セッション名を変更してからセッションを開始する
<?php
session_name('MYSESSION');
session_start();
echo 'セッション名を変更しました: ' . session_name();
?>
セッションを開始する前に session_name() でセッション名をカスタム名に設定しています。このサンプルでは、クッキーに保存される名前が “MYSESSION” になります。
無効な名前を設定した場合の例
<?php
$result = session_name('1invalid-name');
if ($result === false) {
echo 'セッション名の設定に失敗しました。';
} else {
session_start();
}
?>
セッション名にはアルファベット、数字、アンダースコアのみが使えます。この例では無効な名前を設定しようとした場合に失敗を検知しています。
関連する関数
session_start()– セッションの開始session_id()– セッションIDの取得・設定session_set_cookie_params()– セッションCookieのパラメータ設定session_destroy()– セッションの破棄
まとめ
session_name はPHPのセッションを管理する上で重要な関数です。セッション開始前に名前を変更することで、アプリケーションごとに異なるセッション名を使い分けたり、セキュリティ向上を図ったりできます。使用の際は、session_start() の前に設定すること、名前は有効な文字列に限定されることに注意しましょう。初心者でも扱いやすく、実務でのセッション管理に役立つ基本関数のひとつです。
