ホームページ バックエンド開発 PHPチュートリアル session_PHP チュートリアルを使用しない理由

session_PHP チュートリアルを使用しない理由

Jul 13, 2016 pm 05:36 PM
session 優れた いいえ なぜ 使用 存在する あきらめる はい 考慮する 質問

 在考虑session的问题上,我最终放弃了session:
  1、原本的session是使用文件来管理的。文件系统的好坏直接影响session的性能,尤其当有几K人同时在线的时候,尤其突出。解决方法有两个:数据库和文件(使用哈希路径)。
  2、原有session的扩展性和可控制性不好。不利于结合我现有的系统。
  3、在选用数据库的时候,我并没有选择sqlite,上次我测试sqlite效率在win xp上效率没有想象中的好。

  最后我选择了myql的heap表来处理session,并且把session处理和online在线用户统计结合起来。

  下面给出代码为我的一个实例(没提供其他的细节了,具体使用要相应修改)


/**
* 处理在线用户和对session的模拟
* CREATE TABLE `webqq_session` (

`sid` char( 32 ) NOT NULL ,
`uid` mediaint( 8 ) NOT NULL ,
`username` char( 80 ) NOT NULL ,
`ismember` tinyint( 1 ) NOT NULL ,
`logintime` int( 10) NOT NULL ,
`activetime` int( 10 ) NOT NULL ,
PRIMARY KEY ( `sid` )
) ENGINE = HEAP DEFAULT CHARSET = gb2312
* @author:feifengxlq feifengxlq#gmail.com
* @since:2006-10-23
* @copyright:http://www.phpobject.net
* 注: このファイルの使用は、Cookie フィルタリング、いくつかの基本関数とデータベース操作クラス
*/
class session
{
var $mysql;

var $cookie_id=webqq_sid;

var $session=array();

var $max_time=1200;/ /default minimum時間 20 分

function __construct()
{
$this->mysql=new module(TB_PREX._session);//外部サポートが必要
$this->start();
}
function start()

// Cookie がデータベース内に存在するかどうかを確認します
$sid=$ データベースに保存されます
詳細 (ここで s id =. $ 記号);
} else {
//データベースではありません
$ this-> create (); >mysql->delete(where activetime+.$this->max_time.<.time());
}

function register($name, $value,$update=false)
{
if(array_key_exists ($name,$this->session)){
レジストリ ($ name =) {
if (空 ($ name)) Return $ this-& gt; セッション;
if (array_key_exists ($ Natural, $ this-& gt; session)) {
RN $ this-& gt; セッション [$name];

//データベース内のセッション情報を更新します
function update()
{
$row[uid]=$this->session[uid];
$row[username]=$this->session[username] ; ;
$row[ismember]=" ;
$this->mysql->update($row,where sid=.$this->session[sid].); ------以下はプライベートメソッド-------------------------------------- -------- ------**/
function create()
getip() 関数は事前に定義する必要があります: 顧客の IP アドレスを取得します
setcookie($this->cookie_id,$sid,$nowtime+3600* 24); //デフォルトは24時間です
$ nowtime;



http://www.bkjia.com/PHPjc/508237.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/508237.html

技術記事

セッションの問題を検討したとき、私は最終的にセッションをあきらめました。 1. 元のセッションはファイルを使用して管理されていました。ファイル システムの品質は、特に数千人が一緒に作業している場合、セッションのパフォーマンスに直接影響します...

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

フレックスレイアウト内の紫色のスラッシュ領域が誤って「オーバーフロー空間」と見なされるのはなぜですか? フレックスレイアウト内の紫色のスラッシュ領域が誤って「オーバーフロー空間」と見なされるのはなぜですか? Apr 05, 2025 pm 05:51 PM

フレックスレイアウトの紫色のスラッシュ領域に関する質問フレックスレイアウトを使用すると、開発者ツールなどの混乱する現象に遭遇する可能性があります(D ...

H5ページの生産には継続的なメンテナンスが必要ですか? H5ページの生産には継続的なメンテナンスが必要ですか? Apr 05, 2025 pm 11:27 PM

H5ページは、コードの脆弱性、ブラウザー互換性、パフォーマンスの最適化、セキュリティの更新、ユーザーエクスペリエンスの改善などの要因のため、継続的に維持する必要があります。効果的なメンテナンス方法には、完全なテストシステムの確立、バージョン制御ツールの使用、定期的にページのパフォーマンスの監視、ユーザーフィードバックの収集、メンテナンス計画の策定が含まれます。

JSはH5なしで実行できますか? JSはH5なしで実行できますか? Apr 06, 2025 am 09:06 AM

JavaScriptはHTML5なしで実行できますか? JavaScriptエンジン自体は独立して実行できます。ブラウザ環境でJavaScriptを実行すると、コードをロードおよび実行するために必要な標準化された環境を提供するため、HTML5に依存します。 HTML5が提供するAPIと機能は、最新のJavaScriptフレームワークとライブラリにとって重要です。 HTML5環境がなければ、多くのJavaScript機能を実装が困難であるか、実装できません。

カスタムスタイルのシートは、SafariのローカルWebページでバイドゥページでは効果を発揮できないのはなぜですか? カスタムスタイルのシートは、SafariのローカルWebページでバイドゥページでは効果を発揮できないのはなぜですか? Apr 05, 2025 pm 05:15 PM

Safariでカスタムスタイルシートを使用することについてのディスカッション今日は、Safariブラウザ向けのカスタムスタイルシートのアプリケーションに関する質問について説明します。フロントエンド初心者...

H5ページの生産の利点は何ですか H5ページの生産の利点は何ですか Apr 05, 2025 pm 11:48 PM

H5ページの生産の利点には、軽量エクスペリエンス、積み込み速度、ユーザー保持の改善が含まれます。クロスプラットフォームの互換性、さまざまなプラットフォームに適応する必要はなく、開発効率を向上させます。柔軟性と動的な更新、監査が不要で、コンテンツの変更と更新が容易になります。ネイティブアプリよりも費用対効果の高い開発コスト。

rootとしてmysqlにログインできません rootとしてmysqlにログインできません Apr 08, 2025 pm 04:54 PM

ルートとしてMySQLにログインできない主な理由は、許可の問題、構成ファイルエラー、一貫性のないパスワード、ソケットファイルの問題、またはファイアウォール傍受です。解決策には、構成ファイルのBind-Addressパラメーターが正しく構成されているかどうかを確認します。ルートユーザー許可が変更されているか削除されてリセットされているかを確認します。ケースや特殊文字を含むパスワードが正確であることを確認します。ソケットファイルの許可設定とパスを確認します。ファイアウォールがMySQLサーバーへの接続をブロックすることを確認します。

Bootstrapテーブルとページのエンコーディングの関係 Bootstrapテーブルとページのエンコーディングの関係 Apr 07, 2025 pm 12:03 PM

BootstrapテーブルGarled Codeは、通常、ページエンコーディングがテーブルデータエンコーディングと矛盾しているためです。この問題を解決するには、それらが一貫していることを確認する必要があります。特定の手順には、ページとテーブルデータのエンコードのチェック、ページのエンコードの設定、およびエンコードの検証が含まれます。 UTF-8を使用する場合、サーバーもサポートする必要があります。解決できない場合は、JavaScriptエンコードライブラリを使用してみてください。

Element-Plus Projectで公式Webサイトの例のクラス名スタイルを使用すると効果がないのはなぜですか? Element-Plus Projectで公式Webサイトの例のクラス名スタイルを使用すると効果がないのはなぜですか? Apr 05, 2025 pm 07:27 PM

要素プラスでクラス名スタイルを正しく使用する方法は? Element-Plusを使用する過程で、多くの開発者が問題に遭遇します。

See all articles