ホームページ バックエンド開発 PHPチュートリアル PHP のセッションを memcache に書き換え、クロストップレベルのドメイン名制限を満たす (シングルトン モードを適用する)

PHP のセッションを memcache に書き換え、クロストップレベルのドメイン名制限を満たす (シングルトン モードを適用する)

Jun 13, 2016 pm 12:52 PM
memcache quot this

PHP のセッションを memcache に書き換え、クロストップレベル ドメイン名制限を実装する (アプリケーション シングルトン モード)

過去 2 日間、私は PHP クロストップレベル ドメイン名の問題を研究してきました。私は最終的に、しぶしぶ決定を下しました (しぶしぶだったと言うのは、$_COOKIE["mzlid"] の value メソッドは完璧な解決策ではありません。

が生成されたからです。

まず、アイデアについて話させてください:
クロストップレベルドメイン名を実現するには、プログラムが各ユーザーを識別できるようにするためのセッションの問題を解決する必要があります。

単一のドメイン名の場合、sessionid の値を生成する原則は、クライアントの IP およびその他の値、時間値、乱数に基づいて、特定の条件を使用して実装されます。最終的に生成され、Cookie に保存されます。ページがリクエストされるたびに、この値がヘッダーに取り込まれ、サーバー上の PHP ページがさまざまなユーザーを識別できるようになります。


クロスドメインの場合、複数のトップレベルドメイン名にアクセスするときにこの ID 値によって生成される値は同じでなければなりません。

ここで行うことは、顧客の IP および顧客のその他の環境値に基づいて値を生成し、それを Cookie に保存することです。その後、ゲストが Web サイト A にアクセスすると、この値が生成されます。次回、B Web サイトを初めて使用するとき、この値は存在しません。存在しない場合は、以前の生成ルールに従って再度生成されます。

その後、2 つの Web サイトが $_COOKIE["mzlid"] の値を読み取ると、同じ顧客は同じ値を取得します。

次に、この値に基づいてキー名が付けられ、内容が json データの形式で保存されます。

今後、このゲストのセッションの値を追加、変更、または削除したい場合は、memcache に移動して、キー名として $_COOKIE["mzlid"] を使用して値を確認し、それを json 形式で出力します。それで大丈夫です。

複数のサーバーにまたがる機能は、memcache のクラスター機能を使用することで実現されます。


以下はPHPがmemcacheを操作するためのセッションクラスです。

$_COOKIE["mzlid"] の生成を省略するだけです。



<?php

/**
 * 自定义的session方式,功能是把需要写成session的值存入memcache里,应用单例模式
 *  by jroam   http://www.10np.com
 *  
 *  用法:
 *  $mss=MySession:init();
	$mss->set("host","http://www.10np.com");
	$mss->close();
 */


class MySession{
	public $memcache;
	public $seid;
	private static $instance;//存放实例化对像,
	private function __construct() {
		global $SYS_config;
		$this->memcache = memcache_connect($SYS_config["memcachedIP"], $SYS_config["memcacheddk"]); 
	}
	
	//初始化
	function init(){
		if (!isset(self::$instance)) {
            $c = __CLASS__;
            self::$instance = new $c;
        }
        return self::$instance;
	}
	
	/**
	 * k值 sessionk值
	 * $v  内容值
	 */
	function set($k,$v){
		$this->seid=($_COOKIE["mzlid"]);
		if($this->seid=="")return "无";
		//获取已经存在的值
		$a=memcache_get($this->memcache,$this->seid);
		
		if($a) $arr=json_decode($a,true);
		$arr[$k]=$v;
		$a=json_encode($arr);
		
		$f=memcache_set($this->memcache,$this->seid,$a,MEMCACHE_COMPRESSED,36000);
		
		
	}
	/**
	 * k值 sessionk值
	 * $v  内容值
	 */
	function get($k,$v){
	
	$this->seid=($_COOKIE["mzlid"]);
		if($this->seid=="") return "元";
	
		$a=memcache_get($this->memcache,$this->seid);
		$arr=json_decode($a,true);
		return ($arr[$k])?$arr[$k]:"";
	}
	/**
	 * 删除一个值
	 * 如果$k值为空时,删除这个用户所有的session值
	 */
	function del($k){
		$this->seid=($_COOKIE["mzlid"]);
		
		if($this->seid=="") return "";
		if($k==""){
			memcache_delete($this->memcache,$this->seid);
			return;
		}
		
		$a=memcache_get($this->memcache,$this->seid);
		$arr=json_decode($a,true);
		unset($arr[$k]);
		
		memcache_set($this->memcache,$this->seid,json_encode($arr),MEMCACHE_COMPRESSED,36000);
	}
	
	
	/**
	 * 关闭memcache的连接
	 */
	function close(){
		memcache_close($this->memcache);
		
	}
	
	// 阻止用户复制对象实例
	public function __clone()
    {
        trigger_error('请不要复制对像.', E_USER_ERROR);
    }


}






?>
ログイン後にコピー


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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)

PHP開発でMemcacheを使用するにはどうすればよいですか? PHP開発でMemcacheを使用するにはどうすればよいですか? Nov 07, 2023 pm 12:49 PM

Web 開発では、Web サイトのパフォーマンスと応答速度を向上させるためにキャッシュ テクノロジを使用する必要があることがよくあります。 Memcache は、あらゆる種類のデータをキャッシュでき、高い同時実行性と高可用性をサポートする一般的なキャッシュ テクノロジです。この記事では、PHP 開発で Memcache を使用する方法を紹介し、具体的なコード例を示します。 1. Memcache のインストール Memcache を使用するには、まずサーバーに Memcache 拡張機能をインストールする必要があります。 CentOS オペレーティング システムでは、次のコマンドを使用できます。

Memcache キャッシュ テクノロジーを利用して、PHP アプリケーションの同時処理能力を向上させます。 Memcache キャッシュ テクノロジーを利用して、PHP アプリケーションの同時処理能力を向上させます。 May 18, 2023 am 08:12 AM

インターネットの急速な発展に伴い、同時に大量のリクエストに対応する必要があるアプリケーションが増加しており、アプリケーションの同時処理能力をいかに向上させるかが開発者にとって解決すべき課題となっています。その中でも、同時実行性の最適化に Memcache キャッシュ テクノロジを使用することは、比較的一般的なソリューションとなっています。 Memcache は、大規模な Web アプリケーション、データベース、分散システムに適した効率的なキャッシュ テクノロジです。データをメモリに格納し、高速な読み書きを実現するのが特徴です。 Web アプリケーションのデータ アクセス プロセス中に、

PHP 開発で効率的なデータの読み取りおよび書き込み操作を行うために Memcache を使用するにはどうすればよいですか? PHP 開発で効率的なデータの読み取りおよび書き込み操作を行うために Memcache を使用するにはどうすればよいですか? Nov 07, 2023 pm 03:48 PM

PHP 開発では、Memcache キャッシュ システムを使用すると、データの読み取りと書き込みの効率が大幅に向上します。 Memcache は、データベースの頻繁な読み取りと書き込みを回避するためにデータをメモリにキャッシュできるメモリベースのキャッシュ システムです。この記事では、PHP で Memcache を使用して効率的なデータの読み取りおよび書き込み操作を行う方法を紹介し、具体的なコード例を示します。 1. Memcache のインストールと構成 まず、サーバーに Memcache 拡張機能をインストールする必要があります。通過できる

Memcache を使用して、PHP 開発で効率的なデータ キャッシュと並べ替え操作を実現するにはどうすればよいですか? Memcache を使用して、PHP 開発で効率的なデータ キャッシュと並べ替え操作を実現するにはどうすればよいですか? Nov 07, 2023 pm 02:28 PM

PHP は、サーバーサイドの Web アプリケーション開発によく使用される非常に人気のあるプログラミング言語です。 Web アプリケーションのユーザー規模が拡大し続け、データ量が増加し続けるにつれて、効率的なデータ キャッシュと並べ替え操作の重要性がますます高まっています。 Memcache は、この状況で非常に便利なツールです。この記事では、Memcache を使用して PHP 開発で効率的なデータのキャッシュと並べ替え操作を実現する方法を紹介し、具体的なコード例を示します。 Memcacheとは何ですか?メムキャッシュは

PHP 開発で分散キャッシュに Memcache を使用するにはどうすればよいですか? PHP 開発で分散キャッシュに Memcache を使用するにはどうすればよいですか? Nov 07, 2023 pm 03:04 PM

Web アプリケーションがますます複雑になるにつれて、パフォーマンスが重要な問題になっています。多くのアプリケーションにおいて、データベース クエリは最も時間のかかる操作の 1 つです。データベースからデータを頻繁に読み取ることを避けるために、キャッシュ システムを使用して、頻繁に読み取られるデータをメモリに保存し、すぐにアクセスできるようにすることができます。 PHP 開発では分散キャッシュに Memcached を使用することが非常に一般的ですが、この記事では分散キャッシュに Memcached を使用する方法を紹介します。メムカとは

Memcache を使用して PHP アプリケーションのデータ ストレージ操作を最適化するにはどうすればよいですか? Memcache を使用して PHP アプリケーションのデータ ストレージ操作を最適化するにはどうすればよいですか? Nov 08, 2023 pm 09:06 PM

Memcache を使用して PHP アプリケーションのデータ ストレージ操作を最適化するにはどうすればよいですか? Web アプリケーション開発において、データ ストレージは重要なリンクです。 PHP アプリケーションでは、メモリ キャッシュ システムとして Memcache を使用することで、データの保存と読み取り操作の効率を効果的に向上させることができます。この記事では、Memcache を使用して PHP アプリケーションのデータ ストレージ操作を最適化する方法を紹介し、具体的なコード例を添付します。ステップ 1: Memcache 拡張機能をインストールする まず、PHP 環境に Memcache 拡張機能をインストールする必要があります

PHP プロジェクトにおける Memcache キャッシュ テクノロジーの応用と実践 PHP プロジェクトにおける Memcache キャッシュ テクノロジーの応用と実践 May 17, 2023 pm 02:10 PM

Memcache は、オープンソースの分散キャッシュ テクノロジです。データをメモリに保存することでデータ アクセスの速度が大幅に向上し、Web サイトのパフォーマンスと応答性が向上します。 PHP プロジェクトでは、Memcache キャッシュ テクノロジも広く使用されており、良好な結果を達成しています。この記事では、PHP プロジェクトにおける Memcache キャッシュ テクノロジのアプリケーションと実践について詳しく説明します。 1. Memcache の原理と利点 Memcache は、データを保存できるメモリ キャッシュ テクノロジです。

PHP で Memcache キャッシュ テクノロジを使用して、Web サイトの大規模な同時実行パフォーマンスを向上させる方法 PHP で Memcache キャッシュ テクノロジを使用して、Web サイトの大規模な同時実行パフォーマンスを向上させる方法 May 17, 2023 pm 05:00 PM

インターネット技術の継続的な発展に伴い、Web サイトへのユーザーの訪問数は増加しており、同時訪問数も増加しています。このような大量の同時アクセスに対処するには、キャッシュ技術を使用するのが一般的な方法です。 PHP 言語では、Memcache キャッシュ テクノロジは非常に効果的なソリューションです。 Memcache は、大量のデータをメモリにキャッシュし、メモリから迅速に読み取ることができる分散キャッシュ システムです。これにより、Web サイトの応答速度と同時実行性が向上します。この記事ではPHPの使い方を紹介します。

See all articles