【ユーザーログイン判定】PHPの判定処理は正しいですか?毎回データベースにクエリを実行し、COOKIE を保存します
【ユーザーログイン判定】PHPの判定処理は正しいですか?毎回データ インベントリ COOKIE をクエリします
ユーザーがログインしているかどうかを判断するために独自の PHP を作成しました:
[プロセス]
1 まず cookie('uid') があるかどうかを判断します && cookie('uid' ) ループからの飛び出しがない場合は検出
2 ある場合は、データベースに接続して uid に対応するレコードをクエリし、レコードに変化がない場合はループから抜け出します。ループを検出し、すべてのユーザー cookie をログアウトします
3 存在する場合は、cookie('upwd')= = md5($rs[pwd].cookie('salt')) を検出します。それらが等しくない場合は、プロンプトが表示されます。パスワードが変更されたため、再度ログインする必要があることを示します
4 それらが等しい場合は、cookie('email') == md5($rs[email ]) を確認します。等しくない場合は、次のメッセージが表示されます。メールボックスが変更されたため、再度ログインする必要があります
5 それらが等しい => 正しい場合、そのユーザーは現在ログインしているユーザーです。
でも!
[問題]
1 毎回データベースに接続する必要があるため、データベース クエリを減らすことがユーザー最適化の鍵となります。データベースに毎回クエリを実行すると、パフォーマンスに大きな影響を与えます。
2 最適化する方法は何ですか? このログイン判定プロセスは間違っていますか?
【別の考え方】
1 SESSION に保存し、$uid、$uname、$lastactive (最終応答時間) をセッションに保存します。
2 time()-$lastactive > 3600 を検出するための session('uid') && session('uname') がある場合は、データベースに接続して (上記の Cookie によって判断されます)、それ以外の場合は直接クエリします。 use (セッションの保存場所 php .ini のデフォルト設定の場所)
【質問】
1 SESSION に保存した場合、同時実行性が高い場合は影響を受けますか?
-----解決策---------------------------- -
2 番目のソリューションを使用する場合、最初のソリューションを選択したとき、高い同時実行性が懸念されました。
では、最初のソリューションを採用する場合、高い同時実行性は無視できますか。
最初のソリューションでは、ユーザーのパスワードと電子メールが Cookie に保存されています。このデータは常にネットワーク上で動作しています。安全だと思いますか?
データベースは一般化する必要があります
ファイル システム ベースのリレーショナル データベース (SQL) は若干遅いかもしれませんが、すべてメモリ ベースのメモリ テーブルを提供します
データベースには別のブランチがあることは言うまでもありません: メモリベースの noSQL
そのため、データベース クエリによって生じる追加のオーバーヘッドは無視できます
ユーザーがログインしているかどうかを判断するプロセスは次のとおりです。
Cookie('uid') が存在しない場合、リクエストを転送します。 ログイン処理
それ以外の場合は、データベースにクエリを実行して、uid の最後のログイン場所が今回と同じかどうかを確認します。
同じ場合は確認します。
異なる場合は、プロンプトを発行し、条件付きでリクエストログイン処理に転送
-- ----解決策-----
これが私のやり方です。
1. ユーザーがログインしてデータベースに接続し、成功したかどうかを判定します。成功した場合は、セッションと Cookie にユーザー ID、ユーザー名などの情報を書き込みます。 (たとえば、1 日から 2 週間まで、これはユーザーがログイン時に選択できるようにします) さらに、Cookie に保存されたデータの json_encode を作成し、それを暗号化しました。
たとえば、{"uid":1,"username":"fdipzone"} は、可逆文字列に暗号化されます。
2. ユーザーがアクセスすると、次のような状況になります。
1. セッションが存在するかどうかを確認します -> はい -> パス
2. セッションが存在するかどうかを確認します ->いいえ-> クッキーが存在するかどうかを確認します-> はい-> セッションにクッキーを書き込みます-> いいえ- > Cookie が存在するかどうかを判断します -> はい -> Cookie の復号化が成功したかどうかを判断します -> いいえ -> ログイン ページに移動します
4. セッションが存在するかどうかを判断します ->いいえ ->存在します -> ;いいえ->ログインページにジャンプします
-----解決策---------訂正です。
セッションの有効期限が切れたら、セッションに Cookie を書き込みます。この場所でデータベースに接続し、ユーザーのログインが禁止されているかどうかが判断されます。
セッションには独自の有効期限があるため、各データベースチェック間の時間間隔がセッションのライフサイクルになります。
セッションが存在するかどうかを判断します -> いいえ -> Cookie が存在するかどうかを判断します -> はい -> Cookie の復号化が成功したかどうかを判断します -> はい ->
ログインしているかどうかを確認します禁止されています -> いいえ -> セッションに Cookie を書き込みます ->
を使用してセッションが存在するかどうかを判断します -> いいえ -> Cookie が存在するかどうかを判断します -> はい -> 判断しますCookie の復号化が成功したかどうか - > はい ->
ログインが禁止されているかどうかを確認します ->はい -> ユーザーの Cookie をクリアします ->通知ページにジャンプします

BestappRoachforseminginphpisusingthephpmailerlibrarydueToitsReliability、featurrichness、andeaseofuse.phpmailerSupportssmtpは、detairederorhandlingを提供します

依存関係注射(DI)を使用する理由は、コードのゆるい結合、テスト可能性、および保守性を促進するためです。 1)コンストラクターを使用して依存関係を注入します。2)サービスロケーターの使用を避け、3)依存関係噴射コンテナを使用して依存関係を管理する、4)依存関係を注入することでテスト可能性を向上させる、5)注入依存性を回避、6)パフォーマンスに対するDIの影響を考慮します。

phpperformancetuningisucial cuseenhancess andandandadsand。

bestpracticesforsendingemails securlyinphpinclude:1)sutureconsmttarttlsencryptionとの使用の使用、2)検証およびサンシジン化のinputStopReventinjectuctacks、3)adinitivedinitivedInemailsopenslsl、4)adlinglinglingemailoaに

tooptimizephpapplicationsforporformance、usecaching、databaseoptimization、opcodecaching、andserverconfiguration.1)cachingwithedatedatedatafethtimes.2)最適化バイズビーインデキシング、readedandandandwriteoperations.3)

依存関係の依存性、テスト可能性、および維持可能性の依存性の依存性の依存性、および維持可能性は、エクステルンド依存性を維持する可能性があります

PHPパフォーマンスの最適化は、次の手順を通じて実現できます。1)スクリプトの上部にrequire_onceまたはinclude_onceを使用して、ファイルの負荷数を減らすことができます。 2)プリプロセシングステートメントとバッチ処理を使用して、データベースクエリの数を減らします。 3)OpCodeキャッシュのOpCacheを構成します。 4)PHP-FPM最適化プロセス管理を有効にして構成します。 5)CDNを使用して静的リソースを配布します。 6)コードパフォーマンス分析には、XdebugまたはBlackfireを使用します。 7)配列などの効率的なデータ構造を選択します。 8)最適化実行のためのモジュラーコードを記述します。

opcodeCachingsificlyprovesppherformanceBycachingCompiledCode、reducingServerloadandResponsetimes.1)itStoresPhpCodeInMemory、バイパス補助補強団体


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

メモ帳++7.3.1
使いやすく無料のコードエディター
