Question: I want to give a "like" option on my page for non-logged users.

The simpliest thing would be to detect user IP ( e.g. by `$_SERVER['REMOTE_ADDR']`).

More sophisticated would be detecting user's agent (e.g. by `$_SERVER['HTTP_USER_AGENT']`).

But I want to give like-posibility for "each PC in family" ([real-life](http://en.wikipedia.org/wiki/Real_life) family) - this could also mean they all have not only the same IP, not only the same browser but also the same browser-version...

So how would I determinate whether it is a different PC? (**without** using cookies/session)

I want to store one "like" per PC and since cookies can be cleared I didn't want to use them :)

I wanted to abstract my particular interest from the whole problematics - so I did.

**However** you should ***never* trust user input** (as David pointed out) - so do **not** base your final like-count on just that ! *At least* put a likes/per IP limit and combine it with cookies/session.

Answer: 
Detecting the User Agent can easily be spoofed; so it isnt a reliable way. The best way to do this is sessions or cookies. Why do you not wish to use them?
You cannot give a single identity to a PC. 
Cookies can be cleared. 
User logins can be done from different computers.

$ip.$http\_user\_agent will not work. 
User may restart the modem and ISP might assign a new IP. 
Or use a different browser to change $http\_user\_agent. 
Or another system on a LAN might have the same $http\_user\_agent.

What is the significance of giving one "like" per PC (provided you are able to even identify a PC correctly)? 
What if two different users with different tastes use the same PC?