Генерация уникального id для посетителя сайта PHP

Генерация уникального id для посетителя сайта PHP

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

Как можно идентифицировать пользователя, который просто зашел на сайт? Конечно же по IP, скажете Вы. Это хорошее и быстрое решение для небольшого магазина, но сложность пришла к нам от нашего интернет провайдера ДомРу. На одном из компьютеров, подключенных к ДомРу оставался динамический IP и менялся он почти каждые 5 минут. Получалось так, что пользователь, сидевший на сайте магазина и постепенно заполнял корзину товарами в один момент терял накопленный товар и его корзина становилась пустой, так как сменился IP адрес.

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

Мы придумали оригинальный способ как заменить IP адрес строчкой кода на PHP. Да решение не самое лучшее, но это решает проблему для небольшого интернет магазина. 

Оператор uniqid в нашем случае генерирует уникальный ID хеш для конкретного пользователя. Работает этот оператор на версиях PHP3, PHP4, PHP5. uniqid() создаёт уникальный идентификатор с префиксом на основе текущего времени в микросекундах. Этот prefix может использоваться, например, если вы генерируете идентификаторы одновременно на нескольких хостах, что может сгенерировать идентификатор в ту же микросекунду. Prefix может быть длиной до 114 символов.