0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

phpでcookieやurlを使わずにsession_start()でセッション管理する

Last updated at Posted at 2019-12-22

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);
?>
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?