2016-11-16 18 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服務器的地步,則會話存儲很糟糕。 (重擊者沒有用於「會話」。)

相關問題