almacenas en una db la primer entrada del usuario, o la activación de este, y despues cada vez que entra verificas si ya paso el tiempo correspondiente o no... si ya paso le pones una redireccion y listo...
Calcular la duración es facil, es time() + los segundos que hay en un mes...
$fulldays = time() + 2592000;
Eso es aproximado...
Lo que tienes que hacer es que cada vez que visite la pagina calcule el campo que guardaste y el time() actual, en teoria si es 0 ó menos tienes que frenar la aplicacion...
Código PHP:
$_sql = mysql_query("SELECT `time` FROM `users` WHERE `id` = '1'");
if ($_row = mysql_fetch_asoc($_sql)) {
if (time()-$_row['time'] <= 0) { echo 'su cuenta de usuario paso el limite de 30 días';
}
else { echo 'bienvenido...'; }
}
Es un ejemplo, ademas esas condiciones puedes verificarlas en la misma consulta sql para ahorrar tiempo y recursos.