2012-01-11 48 views
4

所以目前我有一個cookie集,(它爲我的網站的主題),並開始我的PHP獲取cookie,然後我有一個非常長的開關箱,根據我得到的cookie設置一切。餅乾太多不好?

如果我只設置了10個不同的cookie並加載cookie,會不好?或者我現在的方式不是那麼糟糕嗎?

目前有它:http://pastebin.com/dJP6Fz5R

我只是在看我的代碼,我意識到,我的每一個頁面加載時都會將一切,通過開關罩去。所以我可以爲每個人製作一個cookie並以這種方式加載數據。但是,獲取用戶的Cookie值與開關盒一樣多?

會比另一個更快/更高效嗎?或者他們都差不多。

任何信息都會很棒,謝謝。

+7

是的,吃太多餅乾會讓你肚子疼。 – zzzzBov 2012-01-11 03:05:30

+1

效率不是問題。但是你可以使用數組映射簡化代碼,而不是冗長的開關。 – mario 2012-01-11 03:05:47

+0

我認爲這個解決方案很好。也許你應該將主題設置導出到自己的PHP文件中,並將其僅包含在更好的概述中。 – Corubba 2012-01-11 03:06:26

回答

1

的最好的方法去你想要的只是包括一個樣式表有條件。例如。

if(empty($_COOKIE['theme'])){ 
    switch($color_recieved){ 
     case 'gray(default)': 
      setcookie('theme', 'gray', time()+60*60*24, '/', '.example.com'); 
     break; 
     // ...etc 
    } 
} 

$theme = '<link src="/css/themes/'.$_COOKIE['theme'].'.css" type="text/css" rel="Stylesheet" />'; 

創建具有特定主題的風格樣式,然後在你的HTML標題呼應$theme

+0

主題的變化將永遠不會讓已經煮熟的用戶,imho有點不好的想法將完整的數據存儲在用戶。 – Corubba 2012-01-11 03:21:15

+0

答案已經更新,以解決這個問題 – wyqydsyq 2012-01-11 03:54:51

3

太多的餅乾可以使任何Web應用程序的肥胖:)

但你不應該在這種情況下擔心,除非餅乾MEG,沒有效率的,否則你可能不得不將丟失