目次
操作
テーブル構造:
時間の重要な点: デフォルトは 1440 秒です。設定可能:
削除方法は?
ホームページ バックエンド開発 PHPチュートリアル PHPでセッションストレージメカニズムを書き換える方法

PHPでセッションストレージメカニズムを書き換える方法

Jul 10, 2018 pm 06:00 PM
php

PHPでセッションストレージメカニズムを書き換える方法

#この記事では主に、PHP でセッション ストレージの仕組みを書き換える方法を紹介します。参考になるものがありました。共有します。困っている友人は参考にしてください。

セッション データ領域

デフォルトでは、ファイルの形式でサーバー オペレーティング システムの一時ディレクトリに保存されます。

セッションデータ領域が多すぎる場合、ファイル形式で保存すると動作が遅くなります。ディスクの読み取りと書き込み (IO、入出力) のオーバーヘッドが非常に高くなります。

実際のプロジェクトでは、セッション データをより高速に保存するために他の方法が使用されます。典型的な方法: データベース、メモリ。

データベース ストレージを例として説明します。セッション データはデータベースに保存されます。

セッション データ領域に直接関連する操作を書き直すだけです。

基本的な操作は読み取りと書き込みの 2 つだけです。

1: 読み取りと書き込みを完了できる 2 つの関数を定義します。

2: 読み取りと書き込みが必要な場合は、ユーザー定義の読み取りおよび書き込み関数を使用して完了することをセッション メカニズムに通知します。

関連トピックの推奨事項:phpセッション (写真、ビデオ、ケースを含む)

定義 2 (実際には合計6 つの必須関連関数) 読み取りと書き込みを完了できる関数

Informsession メカニズム、 が読み取りと書き込みを行う必要がある場合、ユーザー定義の読み取りおよび書き込み関数を使用して、

Session_set_save_handler(
开始函数,结束函数,读函数,写函数,删除函数,GC函数
);
ログイン後にコピー
## を完了します。 #ユーザー定義関数をセッションストレージ関連関数として設定するために使用されます。

上記の構文は単なる設定通知であり、上記の 6 つの関数の呼び出しではありません。これらの 6 つの関数は、セッション メカニズムが特定の時点まで実行される場合にのみ使用されます。時間の転送!たとえば、セッションを開くときは、sessRead() を呼び出すだけで済みます。

通常はセッションを使用します

セッション メカニズムを開きます

操作

$_SESSION

セッションテーブルの作成

このセッションでは、各レコードがセッションデータ領域となり、元のセッションファイルに相当します。

テーブル構造:

読み取り操作:

sessRead()

呼び出し者、情報を伝えてくれた人! PHP のセッション メカニズムがこの関数を呼び出すと、現在のセッション ID がパラメータとして関数に渡されます:

したがって、渡されたセッションを受け入れるには、仮パラメータを指定する必要があります。 ID.パラメータ:

読み取りセッション データ文字列を返す必要があります。これは sess_content フィールドの内容です。読み取られない場合は、セッション データがないことを示す空の文字列を返します。

書き込み操作:

sessWrite()

PHPsession メカニズムが書き込みを実行するためにこの関数を呼び出すときオペレーションでは、現在のセッション ID と書き込まれる (シリアル化される) コンテンツが関数に渡されます。 受信には 2 つの仮パラメータが必要です:

テスト:

削除操作:

sessDelete()

セッションを破棄するとき。 PHP 関数を実行しました:

Session_destroy();

セッションを破棄し、対応するセッション データ領域を削除して、セッションを閉じることができます。メカニズムも同時に!

セッション データ領域を削除する必要があるため、削除のためのメソッドを追加する必要があります:

PHP のセッション メカニズムは現在のセッションを渡します。 sessDelete -ID をパラメータとして呼び出すとき:

受け取るための仮パラメータを定義する必要があります:

#ガベージ コレクション操作: sessGC()

ガベージ: サーバー上の古いセッション データ領域。 ,ゴミの見分け方は?

セッションデータ領域が一定期間(最後の書き込み操作)以上使用されていない場合、それはガベージデータとみなされます。

時間の重要な点: デフォルトは 1440 秒です。設定可能:

最終書き込み時刻に基づいて、ゴミかどうかを判断できます。

最終書き込み時刻を記録するフィールドを追加する必要があります。

書き込み時に、このフィールドを更新します:

sessWrite();

判定条件:期限切れ

Last_write <現在時刻-1440

削除方法は?

session_start() プロセス中、セッション メカニズムを開くプロセス中に、ガベージ コレクション操作が実行される可能性があります。実行すると、期限切れのガベージデータ領域はすべて削除されます。

デフォルトの確率は 1/1000 です。

確率を設定できます:

Possibility:

Base (divisor):

調整確率テスト:

スクリプト サイクル中に調整し、関数 ini_set() を使用し、セッション メカニズムを開く前に完了することをお勧めします:

実装 sessGC()

PHP のセッション メカニズムは、パラメータとして最大有効期間を渡します。

#操作を開始しますsessBegin():

初期化作業

# は最初に実行されることが保証されます。 sessBegin の初期コードを完成させます:

たとえば、データベース接続を初期化します:

操作の終了 sessEnd():

最終作業

Return true;

構文の詳細

セッション メカニズムを開く前に最初に設定します

Session_set_save_handler() は session_start より前にあります()と呼ばれます。

セッションを自動的に開かないでください。 php.ini: session.auto_start = 0

PHP設定項目: session.save_handler

PHP ストレージによって使用されますメカニズム:

#最後に、上記の設定を user: に変更することをお勧めします。これは、ユーザー定義を意味します。

上記がこの記事の全内容です。皆様の学習に少しでもお役に立てれば幸いです。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。

関連する推奨事項:

PHP を介してフォルダーをトラバースして画像のディレクトリ名とファイル名を取得する方法

方法foreach ループ後に残った php 配列参照の問題を解決します。

以上がPHPでセッションストレージメカニズムを書き換える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

CakePHP プロジェクトの構成 CakePHP プロジェクトの構成 Sep 10, 2024 pm 05:25 PM

この章では、CakePHP の環境変数、一般設定、データベース設定、電子メール設定について理解します。

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

この章では、ルーティングに関連する次のトピックを学習します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

See all articles