0

私は自分のサイトに多言語機能を追加するためにphpスイッチャーを構築しています。

MySQLのすべてのコンテンツには、アクティブな言語に従って取得したい言語固有のテキストがあります。

最初は、言語のステータスを格納するために、MySQLで調整されたテーブルを作成することを考えました。
例:
ITALIAN 1
ENGLISH 0
..ここで、1は言語がアクティブであることを意味し、0はオフであることを意味します。

ユーザーが言語を切り替えるたびに、このテーブルを呼び出して言語ステータスを変更します。次に、呼び出しの最後に、ページを更新し、phpが適切なコンテンツを取得します。

これは、ユーザーが切り替えるたびにMySQLの言語ステータスが変わる可能性があることを理解するまでは良い考えのように思われました。したがって、ユーザーがイタリア語でサイトを表示していて、他のユーザーが同時に英語に切り替えた場合、最初のユーザーも英語を表示します。

私の質問は、特定のユーザーの言語ステータスを保存して、他のすべてのユーザーの言語ステータスを変更しないようにするにはどうすればよいですか?

どうもありがとう

4

2 に答える 2

1

永続的な保存が必要な場合は、ユーザーテーブルに「Lang」列を追加します

User(id、username、passhash、lang);

そして、そこに言語設定を保存するだけです。言語を含む別のテーブルがある場合は、外部キーを使用して整合性の問題を回避できます。

永続性を気にしない場合(ユーザーが他のコンピューターからログを記録した場合、デフォルトでデフォルトの言語に戻ります)、セッションまたはCookieのいずれかを使用できます。

于 2013-02-14T17:48:43.177 に答える
0

データベースを使用しないでください。代わりに変数を設定して$_SESSIONください(変更する前に呼び出すことを忘れないでくださいsession_start())。 (PHPマニュアル)

于 2013-02-14T17:47:30.837 に答える