Another idea is to depend only on pfsense. I create 1 file (login-anon.php) which you will link from index.php of captive portal. This file display TnC, after clicking accept it will
1. Check mac on local file (anon-mac-todaydate.db) whether the mac already exists or not. If the today file not exists, create new one. This will automatically reset logged mac access without using cron every midnight. Optionally can delete yesterday file.
2. If mac not exists on today file, allow access and insert into today file.
That it.. very simple.
I will offline until next week.. If you wanna discuss this can pm me.