Какой лучший способ показать те же результаты пользователю на основе его почтового индекса? - PullRequest
1 голос
/ 12 ноября 2010

Я разрабатываю веб-сайт, на котором пользователь может искать «что-то» рядом со своим местоположением, которое он вводит (в Великобритании).Там может быть сказано до 10+ подходящих результатов, но клиент хочет, чтобы одновременно отображались только 3 результата.Поскольку каждое «что-то» платит одну и ту же сумму за перечисление, каждое «что-то» должно иметь одинаковую вероятность отображения ... и эти результаты не должны меняться каждый раз, когда один и тот же пользователь выполняет поиск ..

Я думаю, использовать почтовый индекс пользователей в качестве начального числа, и случайным образом выбрать 3 результата из списка соответствия.Будет ли это хорошим способом достижения этого?Какие у меня есть другие варианты?

Ответы [ 2 ]

1 голос
/ 12 ноября 2010

Если вы хотите, чтобы элементы отображались случайным образом, почему бы просто не использовать PHP-функцию rand для генерации случайного семени? Как только их семя было сгенерировано, вы можете сохранить cookie со значением. При загрузке страницы проверьте, существует ли файл cookie. Если это так, используйте значение в куки; если это не так, то сгенерируйте случайное число и создайте новый файл cookie. Это не будет работать, если пользователь очищает свои куки каждый раз, когда закрывает браузер, но большинство людей этого не делают.

1 голос
/ 12 ноября 2010

Вы можете использовать последние два октета IP-адреса, который инициировал запрос, в качестве случайного начального числа. Это даст вам несколько равномерно распределенных 65 536 возможных начальных значений. Затем я бы установил их IP-адрес обратно в cookie-файл, если они подключаются через сеть, которая случайным образом выбирает внешний адрес, с которого они соединяются. Вы бы использовали значение cookie, если оно присутствует, в противном случае используйте его фактический адрес.

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

Обратите внимание, что, например, компании или университеты, которые направляют весь трафик через один адрес, все пользователи в этом учреждении увидят одинаковые результаты при таком подходе.

Если вы не противны идее о файлах cookie, установите файл cookie на год или около того, который обновляется при каждом посещении и содержит около 64 бит случайного мусора. Тогда используйте это как свое семя.

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