難儀した
cookieの場合
setcookie('testcookie_key', 'testcookie_value', [
'expires' => 0,
'path' => '/',
'samesite' => 'strict',
'secure' => true,
'httponly' => true,
]);
sessionの場合
session_set_cookie_params(0, '/; SameSite=strict', '', true, true);
session_start();
$_SESSION['testsession_key'] = 'testsession_value';
sessionを作る場合も結局cookieへの登録になる。「session_set_cookie_params」のパラメータはここを参照。cookieと大差ないというかほぼ一緒ですねこれ。
session_start()の後に任意のsessionを作っていく。session_start()が無くても作れるけどパラメータの設定のことがあるからちゃんと書いた方がいい。
おまけ:pathの使い道
cookieもsessionも共通。
session_set_cookie_params(0, '/; SameSite=strict', '', true, true);
pathが「/」だとドメイン直下全てで使用できる。
session_set_cookie_params(0, '/contact/; SameSite=strict', '', true, true);
「/contact/」とすると「https://ドメイン/contact/」以下で使用できる。ドメイン直下や別ディレクトリに行くと使えない。
そんな感じで、フォームで使いたいときとかギミックを仕込みたいときとかに。
コメント