Храните Cookie и читайте в другой раз

У меня есть веб-сайт, на котором двойные аккаунты являются большой проблемой. Мы делаем проверку IP-адреса, но это не всегда работает. Я только что подумал о создании файла cookie на клиентском компьютере с уникальным идентификатором пользователя для учетной записи, в которую они входят. Затем читайте cookie каждый раз, когда они входят в систему и проверяют, входят ли они в ту же учетную запись или другую учетную запись. Я знаю, что они могут очистить свои куки, но это поможет привлечь гораздо больше пользователей. Это возможно? Если так, то как?

Мы используем Php и базу данных MySql. В настоящее время мы регистрируем IP-адрес пользователя при входе в систему. У нас есть несколько заданий cron, которые запускаются и проверяют Ips, которые соответствуют, а затем сохраняют все идентификаторы пользователей для пользователей, имеющих одинаковый IP-адрес. Вот как мы помечаем двойные счета.

Мы хотели бы добавить функцию, которая пытается прочитать cookie при входе в систему, если она установлена. Получите идентификатор пользователя (уникальный int) и сравните его с пользователем, который входит в систему. Если идентификатор пользователя не совпадает с идентификатором пользователя, вошедшего в систему, мы знаем, что у пользователя двойная учетная запись.

1 ответ

Решение

Это возможно? Если так, то как?

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

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

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


Пример реализации:

Входная часть

if (isset($_COOKIE['prev_id'])) {
   if ($_COOKIE['prev_id'] != $current_id) {
       // possible duplicated account
   }
} else {
   // expire in one month
   setcookie('prev_id', $current_id, time() + 2592000);
}
Другие вопросы по тегам