1

別の、多分ダミーの質問。私はウェブサイトを作成して$_SESSIONいますが、テーブル自体から直接ユーザーデータを要求することとの間のジレンマがあります。だから、今の私の2つのアイデア:

  1. mySQLから必要な値を取得し、それらを$_SESSION配列に設定します。だから、私が何かを必要とするとき、私はただ呼び出すことができます$_SESSION["username"]。いくつかの欠点もあります。たとえば、管理者が一部のユーザーデータ、つまりユーザー名を変更した場合(これは不完全な例ですが、それでも)。
  2. SQLから直接値を取得します。この場合、SQLクエリを呼び出して結果を返す関数を呼び出すことができます。

したがって、問題は、どちらの方法を使用するのが良いか、または提案できる代替案があるかどうかです。

ありがとう。

4

2 に答える 2

2

すべてのページ要求で使用される名前 (「こんにちは、$firstname、おかえりなさい」) など、頻繁に使用されるが比較的変更されないデータについては、セッションでそれらをキャッシュする必要があります。わずかな追加の解析/読み込みオーバーヘッドは、そのデータを毎回 DB からヤンクするよりもはるかに少なくなります。

「アカウントが無効になっている」などの比較的重要なデータについては、毎回データベースにアクセスしたい場合があります。ただし、これはセキュリティのニーズによって異なります。禁止されたユーザーが、アカウントが無効になった後、短時間システム内をうろついても問題ない場合は、セッションにタイムアウト カウンターを実装できます。たとえば、50 回のヒットごとに、セッションのデータを更新します。関係なく。

于 2012-08-17T19:40:36.097 に答える
1

SESSION でユーザー名を保持せず、代わりにユーザー ID を保持し、管理者がユーザー ID を変更できないようにします。アカウントを作成したら、そのユーザー ID を変更しないでください。各ページのロードについて、DB からのものをチェックします。

于 2012-08-17T19:37:37.460 に答える