Pues si no depuras tu código nosotros no lo vamos a hacer por ti, ¿que te parece si inspeccionas cada variable con var_dump() para verificar sus valores?
Además la comparación inicial del if() está al revés, analiza bien lo que haces con empty() y verás a lo que me refiero.
En todo caso algo más simple produce el mismo efecto, consulta el manual.