【问题标题】:How do I display a random image that stays the same once first displayed?如何显示第一次显示后保持不变的随机图像?
【发布时间】:2013-03-30 03:11:13
【问题描述】:

我有一个 WordPress 网站。在这个网站上,我正在尝试创建一个掷骰子游戏,它显示在特定的帖子格式之上。以下是它的工作方式:

我的服务器上会有一个目录。在目录中,有六个不同的图像,每一个骰子面。一张是骰子面带一个点的图片,另一张是两个点的图片,以此类推。

骰子的“滚动”是通过使用 PHP 来模拟的,以显示该目录中的随机图像。但是有一个问题......

一旦创建了显示骰子“滚动”的帖子,我希望将选择的特定随机图像粘贴到该帖子上,这样无论您刷新页面多少次,相同的“滚动” " 将与该帖子相关联。

本质上,每个访问者都会看到相同的图像,相同的“滚动”,无论使用什么服务器,或者他们是否刷新了页面。如果显示的图片是“五”,那么所有用户即使刷新页面也会看到“五”。

虽然可以通过玩 Random Number God 并创建一个包含发布时间、帖子 ID 和其他内容的算法来根据帖子元数据为每个帖子获取一个“随机”数字来做到这一点,但我想知道是否更容易将所选图像存储在数据库中。

很可能还有其他我可能没有想到的选项。如果有的话,我当然很想听听他们的消息。谢谢。

【问题讨论】:

  • 如果您不想要 cookie,用户应该必须注册,是吗?
  • 我不必将“滚动”与用户相关联。我只需要将它们与帖子相关联。每个帖子都有一个 ID 和发布时间。如果需要,我可以使用它们。
  • 也许你可以edit这个问题并澄清一下。你在下面的评论中说“无论如何我都需要“滚动”保持不变。”我不明白postsvisitors/users之间的关系。当我访问一个帖子时会发生什么,而当您访问同一个帖子时会发生什么?您必须在某种程度上区分用户,还是第一次访问为所有后续访问设置随机图像? 请不要在 cmets 中澄清,而是改进问题 ;)

标签: php wordpress random


【解决方案1】:

您可以通过使用 PHP 会话来完成此操作。它本质上会将结果作为 cookie 存储在用户的浏览器中。

当页面重新加载时,检查适当会话变量中的骰子,如果可用,则显示或生成新的东西。

当用户第一次访问时,他会得到一张图片(任何黑白 1 和 6),并且此信息存储在 cookie 中。在随后的刷新中,当服务器在生成新图像之前查找 cookie 时,会显示相同的图像。

希望对你有帮助。

【讨论】:

  • 这样做的问题是,显示的图像仅对该用户相同,而不是所有用户——如果他们删除了 cookie,图像将再次更改。不,这根本不是一个有效的解决方案。无论如何,我都需要“滚动”保持不变。
  • 或者您可以使用当前的“滚动”填充隐藏的表单元素。并在页面加载时使用此信息生成骰子。
  • Manikandan - 我不知道你在说什么,我也不知道这是否能解决我的问题。能详细解释一下吗?
  • 在您的页面中有一个<input type="hidden" name="dice" value="">。使用第一次加载时掷骰子的值填充其值。在后续加载时,使用 $_POST 查找此值并显示相关数字(如果存在)。如果没有,则生成一个新骰子。
猜你喜欢
  • 1970-01-01
  • 2014-09-13
  • 2010-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-10
  • 1970-01-01
相关资源
最近更新 更多