2016-12-17 41 views
2

我試圖創建一個圖像上傳網站,其中所有圖像顯示在一個頁面上,一個在另一個下面。現在,在這個頁面上,我顯示了很多圖片的屬性,例如上傳圖片的人的姓名,圖片的喜歡人數等等,這個我是爲每張圖片做的。我從數據庫中獲取這些值。現在,當有人點擊任何圖像時,我希望將該人引導至僅顯示該圖像及其屬性的頁面。我應該在URL中傳遞多個值還是應該再次從數據庫中獲取值?

現在,要做到這一點,我應該通過圖像傳遞圖像的所有屬性,我已經從數據庫中獲得了嗎?如果是,那麼安全嗎?如果不是,那麼我應該通過url傳遞圖像的id,然後從數據庫中重新獲取值?這不會是低效的嗎?

提前致謝!

+0

只有當您發送敏感和機密信息(例如用戶密碼或任何密鑰以及URL)時,安全才會顯現。由於您的圖片細節未被歸類爲機密信息,因此我會將圖片ID與URL一起傳遞,並從另一頁上的數據庫中獲取圖片詳細信息,但效率並不高。 –

+0

哦好吧謝謝!如果我將它們存儲在會話變量中呢? – meagler

+0

使用會話數據可以工作,但是...應該允許某人鏈接到特定圖像的詳細信息嗎?如果是這樣,圖像ID將需要包含在URL中...... – ivanivan

回答

1

通過URL傳遞標識符肯定好多了。爲什麼?

最佳實踐:

這不是安全問題,而是相當的最佳實踐。任何開發人員都可以通過傳遞標識符來理解。如果你在一個團隊工作,或者如果你以後需要重做你的代碼,這會很有幫助。

特殊字符:

當你通過URL傳遞參數(GET方法),你必須注意特殊字符。例如必須對空間進行編碼。

性能:

除非你有百萬訪問的每一天,多一個數據庫請求不會殺死的性能。此外,您可以做一些優化:

請只對id和圖像url做第一次請求,第二次請求所有信息的一個圖像。

例子:

SELECT id, url FROM imageTable 
SELECT * FROM imageTable i WHERE i.id = requestedId 

所以,完整的表沒有在一開始,這是很方便,如果不是所有的用戶都會去尋找圖像的細節被加載。

+0

哦,好的..非常感謝! – meagler

相關問題