Как я могу гарантировать, что изображения, оцененные в одном сеансе, не будут отображаться снова для оценки пользователем? - PullRequest
2 голосов
/ 18 сентября 2011

Изображения отображаются случайным образом для оценки пользователей.

Однако, как я сейчас настроил, строки (изображения из базы данных) загружаются случайным образом с помощью rand (), поэтому некоторые из этих изображений могут отображаться снова, даже если пользователь уже оценил их.

Регистрация пользователя отсутствует, поэтому я не могу проверить это.

Есть ли способ гарантировать, что только для этого конкретного сеанса, если изображение оценено, оно не будет отображаться снова?

Ответы [ 3 ]

1 голос
/ 18 сентября 2011

Назначьте каждому пользователю временный случайный идентификатор. Вы можете сохранить идентификатор в файле cookie или компоненте в URL. Если вы используете форму, вы можете сохранить ее в скрытом поле формы. Поэтому, когда пользователь переходит со страницы на страницу, идентификатор остается неизменным.

Затем вы можете сохранить в базе данных изображения, которые пользователь уже оценил. Если вы случайно генерируете изображение, которое они уже видели, просто сгенерируйте новое.

Единственная проблема в том, что это становится болезненным, когда пользователь видит значительную часть изображений. Для этого есть несколько решений, но самое простое, вероятно, это просто очистить записи для пользователя и позволить им начать все сначала.

Вы можете избежать отдельных записей, просто выполнив поиск, если этот идентификатор уже предоставил оценку для этого изображения.

1 голос
/ 18 сентября 2011

Если вы хотите сохранить список изображений только для текущего сеанса, то есть до тех пор, пока не откроется браузер пользователя. Вы можете сохранить его в объекте сеанса PHP. Посмотрите на PHP сессий на php.net

Но если вы хотите запомнить его для пользователей, чтобы даже при перезапуске браузера те же изображения не отображались снова, вам нужно будет сохранить список ранее оцененных изображений в базе данных вместе с постоянным файлом cookie с ID.

1 голос
/ 18 сентября 2011

Сохранить показанное изображение в массиве сеансов или в базе данных.БД самая надежная

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...