我正在尝试建立一个在线商店作为项目,并且每个访问该网站的访客都会获得一个cookie,其中包含一个随机生成的“种子”作为值,如下所示:
setcookie('pagination_seed', rand(), time() + (18000)); //5 hours
然后,我将使用该值创建一个mysql查询以回显产品,并按cookie保存的“种子”进行排序。
SELECT
SQL_CALC_FOUND_ROWS
name,
id
FROM
products
ORDER BY
rand('$cookie_session_seed')
LIMIT
.........(php calculation to make the pagination work).........
问题在于rand()无法在Cookie会话中存储“一致随机”值。每次刷新页面都会为同一用户提供一个“新”随机值,因为默认情况下,访问者将进入产品页面,并且根据cookie会话的工作方式,只有重新加载页面后,该访问者才能开始工作。
每位访问者每x时间显示一次新鲜结果的正确方法是什么?
对于这个项目,所有访问者是否都获得相同的种子并不重要(如果他们获得相同的种子会更好),只要每隔X个小时就能看到新的和新鲜的结果即可。
请宽容,我试图了解cookie已有很长时间(我学过php,jquery,mysql和css3),但是cookie是我的噩梦,我只是无法解决这个问题。
也许我要实现的目标甚至没有通过cookie来完成。应该怎么做?