session_name
(PHP 4, PHP 5, PHP 7)
session_name — 現在のセッション名を取得または設定する
説明
session_name
([ string|null $name
= null
] ) : string|false
session_name() は、現在のセッション名を返します。
name
を渡すと、
session_name() はセッション名を上書きして
元の セッション名を返します。
新しいセッションの name
が与えられると、
session_name() 関数は HTTPクッキー を
変更します(そして、session.transid
が有効なときは、出力内容も変更します)。
HTTPクッキー が一度送信されると、
session_name() 関数はエラーになります。
session_name() 関数は、
セッションを適切に動作させるためには、
session_start()
の前に呼び出さなければなりません。
リクエストが開始された際にセッション名はリセットされ、
session.name
に保存されたデフォルト値に戻ります。
よって、各リクエスト毎に(そして
session_start() をコールする前に)
session_name() をコールする必要があります。
パラメータ
name
セッションの名前を参照します。これは、クッキーや URL (例:
PHPSESSID
) で使われます。 セッション名は英数字のみで構成されている必要があり、また、 短く、その内容が分かるようなものである必要があります (これは、クッキー警告を有効にしているユーザー用です)。name
が指定され、null
でない場合、 現在のセッションの名前が、指定された値に置き換えられます。警告
セッション名は数字だけで構成することはできません。 少なくとも文字がひとつ以上現れる必要があります。そうでない場合、 新規セッション ID が毎回生成されます。
返り値
現在のセッションの名前を返します。
name
を渡すと、
session_name() はセッション名を上書きして 元のセッション名を返します。
失敗した場合に false
を返します
例
例1 session_name() の例
<?php/* セッション名をWebsiteIDに設定する */$previous_name = session_name("WebsiteID");echo "前回のセッション名は、$previous_name です。<br />";?>
変更履歴
バージョン | 説明 |
---|---|
7.2.0 | name は、nullable になりました。
|
7.2.0 | session_name() 関数は、
セッションの状態をチェックするようになりました。 これより前のバージョンでは、 クッキー の状態をチェックするだけでした。 そのため、古い session_name() 関数は session_start() 関数の後に session_name() 関数をを呼び出すことを許して しまっており、それが PHP のクラッシュや不具合を起こす可能性がありました。 |