session_name( name );
session_name()関数を使用して、現在のセッション名を取得、または設定することができます。
セッション名は、セッションIDを受け渡すためのクッキー名やURLパラメータ名などに利用します。
セッションを開始した際に、クライアントのクッキー名として「PHPSESSID」を利用することが、「php.ini」のデフォルト値で設定されています。「php.ini」を直接変更することでも、デフォルト値の変更ができます。

実際に、session_name()関数を使用して、現在のセッション名を取得してみます。
<?php
session_start();
session_name();
echo "現在のセッション名は ". session_name() ." です。";
?>
現在のセッション名は PHPSESSID です。
session_name()関数を引数無しで使用すると、現在のセッション名が取得できます。
そして、引数を指定した場合は、現在のセッション名が変更されます。
なお、セッション名を変更する際、session_start()関数よりも前に呼び出す必要があり、かつセッション名は英数字のみ(数字のみは不可)で構成されている必要があります。
<?php
session_name( "newsession" );
session_start();
echo "現在のセッション名は ". session_name() ." です。";
?>
現在のセッション名は newsession です。
session_id( string id );
session_id()関数を使用して、現在のセッションIDを取得、または設定することができます。
session_id()関数を引数無しで使用すると、現在のセッションIDが取得できます。注)引数を指定した場合は、現在のセッションID名が変更されます。
セッションID名を変更する際、session_start()関数よりも前に呼び出す必要があり、かつセッションID名は、「a-z」「 A-Z」「 0-9」で構成されている必要があります。
注)セッション保持にクッキーを使用している場合は、session_id()関数の引数を指定すると、現在のセッションID と、引数でセットされるセッションIDとがまったく同一であるかどうかに関わらず、session_start()が呼び出される際、常に新しいクッキーが送信されます。
<?php
session_start();
echo session_id();
echo "->";
session_id( "a0b1c2d3e4" );
echo session_id();
?>
18924741a20ab2ab2108577ab9492aba->a0b1c2d3e4
上記のスクリプトのように、自動的に取得するセッションIDを任意の文字列に変更することができます。ただし、第3者が簡単に推測できてしまうセッションID名に変更すると、他人にセッションを乗っ取られるといった可能性があります。
そこで、セッションIDを絶えず変更させることのできるsession_regenerate_id()関数を使用してセッションIDの推測を防ぎ、セキュリティを向上させるといったことができます。
なお、セッションID変更後も、現在のセッション情報はしっかり維持されます。
session_regenerate_id( [ bool delete_old_session ] )
session_regenerate_id()関数は、現在使用しているセッションを終了させることなく、セッションIDだけを新しい値に置き換えます。
PHP5.1 以降になってからは、セッションID変更後、古いセッション情報を同時に削除することが、引数の指定でできるようになりました。古いセッション情報を残しておくことはセキュリティ的にもよくありません。引数の「delete_old_session」をTRUEに指定することで、古いセッションを削除することができます。
<?php
session_start();
$old_id = session_id();
session_regenerate_id();
$new_id = session_id();
echo "変更前のセッションIDは ". $old_id ." です。‹br /›n";
echo "今現在のセッションIDは ".$new_id ." です。";
?>
変更前のセッションIDは 18924741a20ab2ab2108577ab9492aba です。 今現在のセッションIDは 52fc5ca1b96555745795cde0cd956d25 です。
ブラウザの再読み込みを行うと、下記のようにセッションIDが随時変更されていくことが確認できます。
変更前のセッションIDは 52fc5ca1b96555745795cde0cd956d25 です。
今現在のセッションIDは 24d207e1965151916f0cdfaa6b3dfa6d です。
変更前のセッションIDは 24d207e1965151916f0cdfaa6b3dfa6d です。
今現在のセッションIDは a891e3b4a0b840e1ac74f268cbbf14e6 です。
session_save_path()関数を使用して、現在のセッション用のデータが保存されているディレクトリのパスを取得、または保存先ディレクトリを変更することができます。
session_save_path()関数を引数無しで使用すると、現在の保存先ディレクトリまでのパスが取得できます。引数を指定した場合は、指定したパスが保存先となります。
なお、保存先を変更する際、session_start()関数よりも前に呼び出す必要があります。
<?php
session_save_path( "/temp" );
session_start();
echo "現在のセッションデータは". session_save_path() ."に保存されています。";
?>
現在のセッションデータは/tempに保存されています。
session_save_path()関数を使用して、現在のセッション用のデータが保存されているディレクトリのパスを取得してみます。
<?php
session_save_path( );
session_start();
echo "現在のセッションデータは". session_save_path() ."に保存されています。";
?>
現在のセッションデータはC:\xampp\tmpに保存されています。
上記のスクリプトの「session_save_path( );」からセッションデータ保存先のパスがわかりました。