No es malo utilizarlos si están justificados y optimizados.
Un ejemplo simple es cuando se valida un dato de entrada haciendo:
Código PHP:
if( !empy($dato) ){
...
proceso
...
}else{
echo "error";
}
Para mi esta tarea, por ejemplo, es mejor así:
Código PHP:
if( empy($dato) ){ echo "error"; exit; }
proceso
...
Pero el código que expresas es muy extenso como dice Federico como para leerlo en 1 min (tiempo que le doy a la lectura de un thread como máximo :P) y comprenderlo diciéndote si es correcto o no el uso de tantos ifs.