Тебе стоит почитать про HTTP запросы. Особенно, про тот факт, что каждый запрос не связан с предыдущим. Ты можешь "присвоить" id посетителю, попросив поставить ему заданную куку, но:
1) Ты не можешь быть уверен, что посетитель эту куку примет
2) Ты не можешь быть уверен, что он её не сотрёт, даже если примет
3) Ты не можешь знать, когда посетитель покинул твой сайт
Но компромисный выход, конечно, есть. Использовать куку длиной в сессию браузера и забить на те редкие случае, когда клиент не принимает куки.