Писать код не стану, но опишу как реализовывал лично я. В бд к пользователю приставлял еще одну колонку (bonusTime). При регистрации ставится time() в эту колонку. Затем просто при отображении страницы скрипт проверяет прошло ли 86400 секунд. (24 часа) и если да то дает забрать бонус. При получении бонуса колонка bonusTime снова устанавливается на time().