我怎样才能确保在一个会话中评级的图像不会再次显示为用户评级


How could I ensure that images rated in one session do not show up again for the user to rate?

图片随机显示供用户评分

然而,我目前设置它的方式,行(来自数据库的图像)随机加载rand(),所以这些图像中的一些可能会再次显示,即使用户已经对它们进行了评级。

没有用户注册,所以我无法检查。

是否有一种方法可以确保在特定的会话中,如果图像被评级,它将不会再次显示?

将显示的图像保存到会话数组或数据库中。DB是最可靠的

为每个用户分配一个临时随机标识符。您可以将标识符存储在cookie或URL中的组件中。如果使用表单,则可以将其存储在表单的隐藏字段中。因此,当用户从一个页面转到另一个页面时,标识符保持不变。

然后你可以在数据库中存储用户已经评价过的图像。如果你随机生成一个他们已经见过的图像,只需生成一个新的。

唯一的问题是,一旦用户看到了很大一部分图像,它就会变得很痛苦。有一些解决方案,但最简单的可能就是为用户清空记录,让他们重新开始。

您可以通过搜索该标识符是否已经提交了该图像的评级来避免单独的记录。

如果您的意思是保存评级图像列表仅为当前会话,即,直到用户的浏览器打开。您可以将它存储在PHP会话对象中。查看php.net上的PHP会话

但是,如果您想要为用户记住它,以便即使在浏览器重新启动时也不会再次显示相同的图像,那么您需要将先前评级的图像列表存储在数据库中,以及具有id的持久cookie。