Cita: Es verdad, es complicado seguir este codigo, la verdad lo tengo asi pq debo trabajar con sesiones de usuarios, intentos de acceso por URL y porsupuesto validacion
Eso en absoluto no es una escusa para no tener el código ordenado, tengo código muchísimo mas complejo que el tuyo pero lo tengo ordenado y comentado, así que si dejas el código tal como esta solo indica tu falta de organización programando...
Ahora, volviendo al error, te eh comentado que estas haciendo un "header(location)" antes de validar las contraseñas, así JAMAS va a validar y enviar dicho mensaje, primero tienes que validar y después reedireccionar
Lo del tag highliht es una herramienta de este foro para publicar código, cuando estas escribiendo tu post/comentario/entrada arriba tienes una barra de herramientas (b, i , u, etc), al final de la segunda hilera esta un campo select que dice "highliht" despliegas el select y escoges el lenguaje de programación que vas a publicar, en este caso PHP