Yo ya no se como explicarlo xD , aqui un tutorial de sesiones pero que tambien explica bien su funcionamiento:
http://www.desarrolloweb.com/articulos/321.php
Luego probad a hacer un
echo time(); vereis que devuelve un valor en segundos, es como la fecha y hora pasada a segundos.
Ok, ¿para que queremos sesiones y time()? vamos al lio.
1. Cuando un jugador loguea probablemente se crean para el unas variables de sesion como pudieran ser
$_SESSION["ID"] , $_SESSION["NICK"] que con un
session_start(); al inicio de todas las paginas se "propaga".
2. Pues tambien al loguear vamos a crear una variable de sesion que sea el tiempo en segundos justo de esta noche (el dia en que estemos) a las 23:59. Para eso usaremos
mktime(), que es una funcion a la que le pasamos el dia, mes, año, hora, minutos y segundos y nos devuelve ese valor en segundos que he explicado antes. Nos hara falta la funcion
date(); con la que sacaremos el dia, mes, año, etc. Si no lo usaron nunca prueben a hacer un echo
date("d:m:y"); segun los valores que le demos nos devuelve el dia, mes, año, o solo uno de ellos, incluso tambien la hora.
Prueben con echos!!!!!!! echo es vuestro amigo y os enseña muchas cosas xD
$_SESSION["TIMERELOGIN"]=mktime(23,59,59, date("m"), date("d"), date("Y"))+2;
Si estais programando en un script/juego que no es vuestro, pues tendreis que rebuscar!! el script donde el jugador loguee.
3. Ya tenemos en
$_SESSION["TIMERELOGIN"] el momento en segundos en el cual un jugador deberia ser forzado a reloguear ok. Entonces en todas nuestras paginas (ya sea con un include o pegandola en todas las paginas), es cuando hacemos la comprobacion, que propiamente dicho seria algo como:
-Si (el momento actual es mayor o igual al momento guardado en la variable de sesion TIMERELOGIN) entonces {Cerramos la sesion, o bien redireccionamos a un php donde se realicen las acciones oportunas y ademas generemos el nuevo valor para TIMERELOGIN}
Prueben cosas, lean documentacion de estas funciones, no se, yo me retiro xD