セッション処理の流れ

PHP用語集

カテゴリー: セッション  閲覧数:400 配信日:2019-09-03 10:28


1.セッション開始するには?


セッションを手動で開始するには?
・session_start() 関数を使用

セッションを自動で開始するには?
・session.auto_start に 1 を設定している場合は、 リクエスト開始時に自動的にセッション開始

2.セッション開始したらどうなるの?


session_start() 関数を実行するとどうなるの?

下記何れかを実行
・a.既存セッションを再開する。セッションID取得
・b.新規セッションIDを発行する

a.最初に、既存セッションを取得しようと試みる
・PHP はまず、(通常はセッションクッキーから受け取る) ID を使用して既存セッションを取得しようと試みる
・セッションデータコンテナに登録されている内容をスーパーグローバル変数の$_SESSIONへ読み込む
・読み込みは、ユーザーのブラウザに格納されているPHPSESSID(この名前は変更することが可能)という名前のクッキーに格納されているセッションIDと、サーバー側のセッションIDを紐付けて行われる
・クッキーではなく、$_GETや$_POSTによって渡されるセッションIDによって行われることもある
※クッキーが使用できない場合にセッションIDを$_GETや$_POSTで伝播する

b.セッションID を受け取れなかった場合
・新規セッションIDを発行して、新しいセッションを作成する

3.PHP スクリプト処理が終了するとき


セッションは自動的に終了
・スーパーグローバル $_SESSION の中身を自動的に受け取ってシリアライズし、 ストレージへ送信
※この一連の操作にはセッション保存ハンドラを使用

PHP がデフォルトで使用する保存ハンドラは?
・files
※session.save_handler で設定

session.save_handlerの役割は?
セッションデータを「サーバー上の session.save_path で指定した場所」へ保存

セッションを 手動で終了するには?
・session_write_close() 関数を使用


【PHP超入門】Cookieとセッションについて


週間人気ページランキング / 10-11 → 10-17
順位 ページタイトル抜粋 アクセス数
1 ブラウザを閉じたらセッションデータはどうなるの? | セッション 6
1 「POSIX正規表現」と「PCRE正規表現」の違い 6
2 Parse error: syntax error, unexpected 'public' (T_PUBLIC) | Parse error(エラーメッセージ) 5
2 Fatal error: Uncaught Error: Call to a member function modify() on string | Fatal error(エラーメッセージ) 5
2 Fatal error: Uncaught HeadlessChromium\Exception\OperationTimedOut: Operation timed out (3sec) in | Fatal error(エラーメッセージ) 5
2 curl で Cookie を使用する 5
2 http_build_query | URLs(関数) 5
2 インポートするデータを受信できませんでした。ファイル名が送信されていないか、ファイルサイズが PHP の設定で許可された最大値を超えています。FAQ 1.16 をご覧ください | エラーメッセージ 5
3 定数 4
3 SQLite(エラーメッセージ) カテゴリー 4
4 コード例 … 「例外処理」はネストすることができる 3
4 セッション管理が必要な理由は、HTTPプロトコルには状態を保持する機能がないため | セッション 3
5 Warning: strlen() expects parameter 1 to be string, array given in ○○.php on line △△ | Warning(エラーメッセージ) 2
5 PHPで定数を定義する方法は2種類ある / 配列定数の定義 2
5 PHP用語 2
5 Fatal error: Uncaught League\OAuth1\Client\Credentials\CredentialsException: Received HTTP status code [401] with message "現在この機能は一時的にご利用いただけません" when getting token credentials. | Fatal error(エラーメッセージ) 2
5 ログイン 2
5 PHPでどうしてもエラーが画面表示されない時は、HTMLコメントアウトを外してみる | エラーメッセージ 2
5 ブラウザを閉じたらセッションデータはどうなるの? | セッション 2
6 クラス定数 | クラスとオブジェクト 1
2024/10/18 1:01 更新
指定期間人気ページランキング / 2020-5-28 → 2024-10-17
順位 ページタイトル抜粋 アクセス数
1 PHP用語 6657
2 ブラウザを閉じたらセッションデータはどうなるの? | セッション 2354
3 Parse error: syntax error, unexpected 'public' (T_PUBLIC) | Parse error(エラーメッセージ) 2272
4 ブラウザを閉じたらセッションデータはどうなるの? | セッション 1585
5 【テスト投稿】テスト | 1132
6 セッション管理が必要な理由は、HTTPプロトコルには状態を保持する機能がないため | セッション 970
7 PHPで定数を定義する方法は2種類ある / 配列定数の定義 841
8 Fatal error: Access level to ▲::$△ must be protected (as in class ●) or weaker | Fatal error(エラーメッセージ) 798
9 Fatal error: Uncaught Error: Call to a member function modify() on string | Fatal error(エラーメッセージ) 772
10 Fatal error: require_once(): Failed opening required 'PEAR.php' | Fatal error(エラーメッセージ) 761
11 コード例 … 「例外処理」はネストすることができる 760
12 curl で Cookie を使用する 727
13 定数 702
14 インターフェイス | クラスとオブジェクト 692
15 Fatal error: Uncaught RuntimeException: SplFileObject::__construct(): failed to open stream: Permission denied in | Fatal error(エラーメッセージ) 685
16 メンバー | クラスとオブジェクト 642
17 Fatal error: Uncaught HeadlessChromium\Exception\OperationTimedOut: Operation timed out (3sec) in | Fatal error(エラーメッセージ) 630
18 Warning: include() [function.include]: Failed opening '**.php' for inclusion (in | Warning(エラーメッセージ) 619
19 ( ! ) Fatal error: Uncaught PDOException: SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column | Fatal error(エラーメッセージ) 586
20 Composer | 依存関係マネージャ 560
2024/10/18 1:01 更新