セッション名の取得と変更
セッションを開始した際にクライアントのクッキー名として利用されるのがデフォルトでは「PHPSESSID」となっています。この値をセッション名と言いますが、デフォルト値はphp.iniで設定されています。
上記のようにデフォルトの値はphp.iniで設定されています。もしデフォルト値を変更したいのであれば、php.iniを変更して下さい。
このようにセッション名は必ず固定されているものではないため、プログラム中では固定値の「PHPSESSID」を使って記述してしまうと問題となる場合があります。その為、セッション名を参照したい場合には現在使われているセッション名を取得できる「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 )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。