2016-11-16 60 views
1

我正在为登录用户构建网站或多种语言。如果我有一个名为user_settings的表格和一个名为language的列,则可以保存该语言,例如en英文版和es西班牙文版。用户语言设置 - 获取设置和显示的最有效方式

我也可以存储它使用cookie(我认为)。这将是最有效的方式?

我认为数据库方式是最好的方式,但显示每个页面的消息的唯一方法是执行查询说,SELECT language from user_settings,然后做一个if statement

if($languageFromDatabase == 'en') 

但我不认为这是effient,因为我将不得不检查每个页面加载数据库。什么是一个有效的方法?

回答

2

在Cookie中存储语言。 然后,如果只有获取参数$ _GET ['lng'],则执行sql并将其存储在cookie中。

这样sql只会在用户想要更改语言时才会执行。

3

在用户第一次访问时从数据库中读取语言。将其存储到会话数据中,然后从那里读取。

0

您需要cookie来跟踪用户。

我的意见,大致按照从最好到最差:

计划A:这既可以保持 user_ID的。这需要从数据库中提取每个页面开始处的各种用户信息。

计划B:将所有信息保存在Cookie中。这可能会导致体积庞大的cookie,黑客攻击cookie等。当您为每个用户添加其他需要保留的内容时,可能会导致转换问题。

C计划:传入URL。这非常容易出现黑客行为,并且在有人想要书签或共享URL时很笨拙。

计划D:如果您希望增长到您需要多个Web服务器的地步,则会话存储很糟糕。 (重击者没有用于“会话”。)