phpでcookieを使わずに、session idを手動で設定し、session_start()する方法。
こんな方向けの話
- アクセス元からsessionを表す or 作ることができる文字列がpostされる(alexaスキルや、google assistatアプリ、line botなどの受け側をphpで作る場合など)
- セッション管理だけの為にRDBMS、nosql系を使いたくない → Webサーバのsession機能を使いたい。
制限
セッションIDとして使えるのは「英数字」「カンマ」「ハイフン」のみです。
コード
<?php
ini_set( 'session.use_cookies', 0 );
ini_set( 'session.use_only_cookies', 0 );
$session_id = "session-id-text"; //この文字列がセッションidとなる
session_id($session_id);
session_start();
?>
サンプル
test1.php
<?php
ini_set( 'session.use_cookies', 0 );
ini_set( 'session.use_only_cookies', 0 );
$session_id = "session-id-text"; //この文字列がセッションidとなる
session_id($session_id);
session_start();
$_SESSION['test'] = "yamada"; //セッションに保存してみる
?>
test2.php
<?php
ini_set( 'session.use_cookies', 0 );
ini_set( 'session.use_only_cookies', 0 );
$session_id = "session-id-text"; //この文字列がセッションidとなる
session_id($session_id);
session_start();
var_dump($_SESSION);
?>