lo que se me ocurre para sabados y domingos es que haga esto
verfique si hoy es sabado o domingo
Código PHP:
<?
$dia = date("D")
?>
eso si hoy fuera sabado le devoveria "sat" "3 iniciales de saturday". y asi mismo con domingo. entonces si hoy es sabado o domingo pues no tener este dia en cuenta en la validacion que hace
este tambien le serviria
Código PHP:
<?
$dia = date("w");
?>
la variable dia vadria 0 si es domingo o 6 si es sabado.
Para los festivos lo unico que se me ocurre es que s ecree uan tabla en al base de datos con un campo mes y el otro dia, y relacione el numero del mes con el numero del dia en que es festivo y luego consulta eso y hace lo mismo en esos dias los ignore en la verificacion
espero le sirva mi ayuda.