2012-07-13 71 views
1

爲近期查看的產品編寫代碼的最佳方式是什麼?我使用數據庫來創建動態頁面,並認爲我可以將ID編號存儲在會話或cookie中,並從數據庫中提取圖像和標題。雖然,我不知道這是否會奏效。我只希望它顯示最近瀏覽的5個項目,而不顯示任何重複項目。有任何想法嗎?PHP最近查看過的產品

+1

要顯示全球最近5項或當前用戶查看的項目嗎? – 2012-07-13 21:15:48

+0

將由用戶,但我們沒有用戶登錄,所以我想用戶將成爲瀏覽產品的頁面的訪問者 – 2012-07-13 21:52:44

回答

1

傳統的方法是存儲在cookie中。如果您可以加密cookie,請這樣做。

請記住,用戶可以修改cookie。 #1規則永遠不會相信用戶輸入。總而言之,請務必在顯示之前驗證的信息,否則您將打開自己的攻擊世界。

將ID存儲在數組中?用','或''分隔。 - 不要創建100個不同的cookie來存儲ID。

您還可以使用SQL來存儲視圖...但爲什麼使用不需要的SQL查詢? SQL是長期存儲的。會話和cookie用於當前操作。

+0

謝謝!將更多地考慮這一點 – 2012-07-13 21:55:10

3

如果用戶已登錄,則可以創建一個名爲'userViews'的表,提供用戶ID和查看的productID。 然後,您可以使用productID上的'SELECT DISTINCT'選擇一個查詢。這將選擇唯一的值。 (檢查http://www.w3schools.com/sql/sql_distinct.asp

如果用戶沒有登錄,我建議你做同樣的事情,但不要使用userID,嘗試從用戶中找到一些獨特的東西。您可以嘗試使用隨機(唯一)號碼設置Cookie或會話並將其鏈接到數據庫。

+0

真實的,好的指針 - 將更多地看到! – 2012-07-13 21:53:23

0

有3種方法可以顯示最近查看過的產品。 (也許有其他一些方法,但是這3個主要用於)。

  1. 基於IP
  2. 店不久前在餅乾看
  3. 會話ID

基於IP

這不是一個好主意,那是因爲有機會兩個人使用相同的路由器,並且沒有看到該產品的人會看到另一個人最近的視圖。 (你可以使用IP來顯示你所在地區的其他人等)。基於

上的Cookie

利用Cookie你100%確保您爲展示最新產品,以誰在訪問您的網站的人,但並不是所有的用戶/觀衆已經啓用了Cookie也餅乾可以輕鬆編輯和安全風險,如果你沒有正確加密。

會話ID

您可以生成一個訪問者隨機user_id和存儲這樣的數據庫中的信息:

start_session(); 
if(!$_SESSION['user_id']){ 
$_SESSION['user_id'] = rand(1, 1000000); 
mysql_query('INSERT INTO products_recent (user_id) VALUES ('.$_SESSION['userid'].')'); 
} 

此外,您還可以選擇/更新用戶產品的意見和顯示器給那個用戶。

如果您願意,您可以每24小時輕鬆清理一次數據庫,或者您可以將此數據用於分析目的。

最後 - 註冊用戶

如果寄存器用戶查看您的產品我建議高在保存數據庫,他每次都顯示最近這些視圖產品/她訪問您的商店。

謝謝,

相關問題