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

広告

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

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

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

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

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

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

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

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

サンプルプログラム

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

sessiontest4.php

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

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

<?php

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

?>

</body>
</html>

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

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

PHP入門の他の記事を見てみる

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)