Usuario registrado?, ¿cualquier visitante?.
Para el primer caso crea una columna en tu tabla tipor DATETIME, al ejecutar el script verificas que haya una diferencia mayor de X tiempo guardado, si cumple ejecutas y guardas el momento en que se ejecutó de lo contrario restringes su ejecución. Todo esto es SQL, busca la función DATE_SUB()
www.mysql.org
Para cualquier visitante... crea una cookie, misma lógica.
www.php.net/setcookie
Suerte!