2016-11-16 7 views
1

ログインしているユーザーのためにサイトを複数作成しています。 user_settingsという名前のテーブルとlanguageという名前のカラムがある場合は、その言語を保存できます。たとえば、英語の場合はen、スペイン語の場合はesです。ユーザー言語設定 - 設定を取得して表示する最も効率的な方法

私はクッキーを使ってそれを保存することもできます(私は思う)。それは最も効率的な方法でしょうか?

私はデータベースの方法が最良の方法だと思いますが、各ページのメッセージを表示する唯一の方法は、SELECT language from user_settingsという質問を実行してからif statementを実行することです。

if($languageFromDatabase == 'en') 

しかし、私はすべてのページの読み込み時にデータベースをチェックする必要があるので、それは効率的ではないと思います。何が効率的な方法でしょうか?

答えて

2

クッキーに言語を格納します。 そして、パラメータ$ _GET ['lng']のみを取得した場合は、sqlを実行して再度クッキーに格納してください。

このようにして、SQLを実行するのは、ユーザーが言語を変更したいときだけです。

3

ユーザーの最初の訪問時にデータベースから言語を読み取ります。それをセッションデータに格納し、そこから読み込みます。

0

ユーザーを追跡するにはCookieが必要です。最高から最低までおよそために

私のコメント、:

プランA:それはどちらかのみ user_idを保つことができます。これは、各ページの開始時に様々なユーザ情報のためにデータベースからのフェッチを必要とする。

プランB:すべての情報をCookieに保存してください。これは、かさばったクッキーやクッキーのハッキングなどのリスクを冒します。また、各ユーザーに必要なものを追加するときに、移行の問題が発生する可能性があります。

プランC:URLを渡します。これはハッキングがひどくなりがちで、誰かがURLをブックマークしたり共有したりしたいときは不器用です。

プランD:複数のWebサーバーが必要な場所に成長すると予想される場合は、セッション記憶域が悪いです。 (大打者は「セッション」には使用できません)

関連する問題