Cita: pero ninguno que me de una luz sobre el problema con el if:
¿No te da ninguna idea?
A mi me da toda la impresión de que hay HTML y JavaScript entremezclado en código PHP, ya que tanto "action" como "alert", no son variables de PHP, y sin embargo en alguna parte están dentro de él.
Creo que el problema es de depuración de ese código.
Deberías separar mejor las cosas, armando un código menos ambicioso y más ortodoxo. Menos ambicioso, en cuanto a lo dinámico, porque evidentemente no estás dominando bien cómo hacer esa integración.