セッション名の取得と変更

広告

セッションを開始した際にクライアントのクッキー名として利用されるのがデフォルトでは「PHPSESSID」となっています。この値をセッション名と言いますが、デフォルト値はphp.iniで設定されています。

セッション名のデフォルト値

上記のようにデフォルトの値はphp.iniで設定されています。もしデフォルト値を変更したいのであれば、php.iniを変更して下さい。

このようにセッション名は必ず固定されているものではないため、プログラム中では固定値の「PHPSESSID」を使って記述してしまうと問題となる場合があります。その為、セッション名を参照したい場合には現在使われているセッション名を取得できる「session_name」関数を使います。

session_name
string session_name ( [string name] )
session_name() は、カレントのセッション名を 返します。name を指定した場
合、カレントの セッション名は、その値に変更されます。
セッション名は、リクエストが開始された際に セッション名に保存された
session.name の デフォルト値にリセットされます。よって、各リクエスト毎に
(そして session_start() または session_register() をコールする前に) 
session_name() をコールする必要があります。

パラメータ:
  name  新しく設定したいセッション名
戻り値:
  現在のセッション名

セッション名は英数字のみで指定する必要があり、数字だけで駄目です。少なくとも文字がひとつ以上現れる必要があります。

「session_name」関数を引数無しで使うと、現在のセッション名を取得できます。また引数に別のセッション名を指定した場合には、セッション名を変更が可能です。

サンプルコード

では実際に試してみます。

<?php
    session_name("phpsession");
    session_start();
?>

<html>
<head><title>PHP TEST</title></head>
<body>

<?php

    print('現在のセッション名は'.session_name().'です。');

?>

</body>
</html>

上記ファイルをWWWサーバに設置しブラウザ経由で見ると下記のように表示されます。

セッション名の取得と変更

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。