На словах:
1. чел заходит -> проверяем есть ли й него id в куки -> если есть проверяем не истек ли срок id (истек -> выделяем новый и пишем его в куки с определенным сроком действия, а также во все ссылки при генерации страниц типа /kjsdhf.html?id=93473573), зыписываем инфу о id в базу (id, creation_date, last_access_date, ip), ну и соответственно lst_access_date - время посл доступа будет обновляться при каждой загрузке и проверятся не устарело ли и соответствует ли ip.
во всех ссылках и формах мы передаем только id. даже если подсмотрят твой кэш - ip будет другой.
может я чего непонятно объяснил - пиши - дам ссылки и напишу схему более подробно - она работает С ЛЮБЫМИ настройками!