Obvio que te funcionará así... en tu código estás diciendo que al primer campo vacio te redireccione y solo defina a ese campo vacio como que hubo error..... ... ennnntonces, tu mismo estás diciendo qué quieres: que PRIMERO te lea los campos vacios ....
Te sugiero un código como:
Código PHP:
<?php
$error=0; // proponemos que partimos con 0 errores
if (empty($_POST['usuario'])) {
$errores.="error_color_texto1='TRUE'";
$error=true; // si al menos encontramos un error, cambiará el valor de esta variable
}
if (empty($_POST['password'])) {
$errores.="error_color_texto2='TRUE'"; // estamos añadiendo los campos vacios
$error=true;
}
// entonces, primero comprobamos si hubo errores
if($error==true) {
header("Location:pagina.php?$errores"); // si los hubo agregamos a la URL todos los errores que se fueron recogiendo
exit;
} else { echo "Todo bien..."; }
?>
En principio debe funcionar... aunque, estás usando algo complejo... creo puede haber algo más sencillo y funcional (hablando de escribir menos código). Haz buscado en el foro??
Suerte!