2012-12-18 27 views
0

客戶問我來幫他建了以下功能爲他的網站:從後臺更改網站背景圖片?

  • 能夠更改背景圖片爲他的網站從後臺。 (PHP & MySql)

任何人都可以推薦優雅但容易構建解決方案嗎?

我想在數據庫表中添加圖像,然後從表中直接讀取和應用背景<body><body background="<?php echo $mybackground;?>">,但我想,應該有更好的解決方案。有任何想法嗎?

+1

聽起來就像任何一種方法一樣好(只要你使用CSS'background-image'屬性而不是過時的'background' HTML屬性)。但是,使用現有的CMS可以節省時間 - 這會消除編程上傳,調整大小等問題。 –

回答

0

有沒有快速剪切粘貼片段來做到這一點。

假設你不想去同一個CMS,你必須建立一個數據庫,創建HTML表單和一些PHP代碼來處理更新數據庫,等等

到讓你開始,谷歌「創建一個數據庫與phpmyadmin」,然後檢查出http://php.net/manual/en/book.mysqli.php的PHP代碼連接到它並運行sql腳本反對它。

+0

Hi Zach。所有這些(後臺,數據庫,cms ...)已經到位,只是尋找我認爲更優雅的方式。新鮮的心態很可能提出更優雅的解決方案相比,我現在已經在我的腦海裏, – Zoran

+0

在這種情況下,只要把文件上傳到外地後端(從來沒有聽說過它作爲「後臺辦公室」哈),並存儲文件名在數據庫中。您可以在''' –

+0

實際上,使用尤卡的答案。只需將圖像文件(相同的文件名)替換爲文件上傳的文件。 –

1

最簡單的方法可能是使用一個固定的文件名,並設置了一個簡單的形式上傳文件,然後將存儲在服務器上body使用站點範圍的樣式表,設置背景,在相應的文件夾,在該固定文件名下。這將需要只有一個文件輸入字段和一些身份驗證(也許只是一個簡單的密碼)。然後表單可以進行一些基本檢查,看看該文件是否爲圖像類型。

這裏假定已經檢查了圖像對於背景的適用性並且是提交它的人的責任。

有一個小缺點。如果背景圖像很少更改(通常情況下),普通緩存機制會爲其分配相當長的新鮮時間。這意味着用戶可能會從緩存中獲取舊的背景圖像一段時間。但是,如果這是嚴重的,您可以修改服務器設置,以便將背景圖像設置爲不可緩存或壽命較短。

+0

嗨Jukka。 CSS選項意味着我必須限制用戶只能說3張圖片,然後準備3 css,並根據我的數據庫表中當前哪一個進行切換。他將在後臺有一個頁面,在那裏他可以選擇他想要使用哪一個。但是,客戶不喜歡任何限制... – Zoran

+0

@Zoran,我沒有看到你的意思是「CSS選項」(你可以使用舊式的'')以及該方法如何施加這種限制。我的方法中不需要數據庫,並且在更改背景圖像時不會更改CSS或HTML。不可否認,它有一個實際的限制,即背景圖像的*類型是固定的,因爲實際上文件名後綴設置它。 –

+0

@Zoran所以你說的用戶需要能夠上傳一個新的圖像,以及能夠將背景圖像更改爲以前上傳的圖像?我建議有一個包含每個圖像的「檔案」目錄,然後在用戶決定更改它時,將想要激活的目錄複製到另一個位置。這樣你就不用每次請求都輪詢數據庫*和*你可以利用緩存的CSS(它總是引用「活動」圖像)。 – cimmanon