si je met un imput caché qui contient l'id de session, puis au rafraîchissement de la page faire une vérification avec un if() ?
Je pense que le problème peut être résolu qu'avec la session et le timesnamp
Le système de session peut être utilisé. C'est une solution qui marchera pour tout le monde (car certains bloquent les cookies) mais qui est aussi la plus facilement contournable puisqu'il suffit de fermer son navigateur et de le réouvrir pour démarrer une nouvelle session. Maintenant tout dépend du niveau de sécurité que tu souhaites, évidemment.
Une solution un peu plus élaborée serait d'ajouter à cette première méthode, l'emploi de cookie - avec avertissement uniquement pour les utilisateurs qui ont bloqué les cookies, tu les empêches de jouer tant qu'il n'ont pas réactiver la réception de cookies.
Avec la session tu les empêche de rejouer tant qu'il sont dans la même session.
Avec le cookie, (pas un cookie de session bien entendu), tu stockes l'heure de connexion dans le cookie et tu les empêche de rejouer avant l'heure de connexion + 24 h par exemple.
Evidemment un cookie ça peut s'effacer ou se modifier mais ça prend un peu plus de temps que de fermer/ouvrir son navigateur (surtout si on ne veux pas effacer tous les cookies d'un coup).
A moins qu'il y ait beaucoup de millions à gagner (auquel cas donnes moi l'adresse de ton jeu

) ça peut suffire pour décourager certains à ne pas contourner ton système de contrôle.
Cela dit si ton jeu est juste une simulation qui dure le temps d'une session, la variable de session est la voix royale et suffisante.