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: 
Your only option to do this outside the simple methods of using cookies, logins, etc. is to do browser fingerprinting. This technique involves gather a variety of information that the browser outputs to the server/webpage and making a hash of it to create a unique ID for that client. It has a remarkably high accuracy and would work fairly well under the circumstances you are describing.

It is based on the idea that "no two browsers are exactly the same". In other words, you look at screen resolution, user agent strings, active plugins, etc. and create a "fingerprint" of those settings. There is almost always going to be a variance in some way.

There are available libraries that can help get you started. Here is one that is very easy to implement and understand... <https://github.com/Valve/fingerprintjs>
You can use sessions without using cookies. When the user logs in, they get a token, and this token is appended to every URL they visit. (In PHP you can see this if you disable cookies in the browser, you will get "PHPSESSIONID" in the URL). So, if you make users log in before voting / liking / whatever, then you can achieve this using sessions but not cookies.

If you are talking about public users without a login mechanism, then there really isn't any way to achieve this, unless you set a cookie recording the fact that this browser has voted. 

Note however that not only can cookies be deleted, but it won't actually achieve what you want unless everyone in the family uses a different browser or has a separate login on their operating system. Otherwise they are effectively all the same user as far as you can tell. Also people can use multiple browsers so one person could vote / like more than once anyway.