No tiene sentido que muestres el mensaje de éxito en un formulario, lo puedes imprimir como una simple cadena. Esto sería así:
Trabajando con una base de datos
Código PHP:
Ver original//Me conecto a la base de datos
$conexion = new mysqli ("servidor", "usuario", "password", "bd");
//Si no me puedo conectar, muestro un mensaje se termina el script
if ($conexion->connect_error)
exit ("Error: No se pudo realizar la conexión");
//Caso contrario, seguimos con el script
//Desinfecto los datos recibidos de posible contenido malicioso
$user = $conexion->real_escape_string(strip_tags($_POST["name"])); $pass = $conexion->real_escape_string(strip_tags($_POST["pass"]));
//Hago la consulta
$consulta = $conexion->query(sprintf("SELECT * FROM usuario WHERE user = '%s' AND pass = '%s'", $user, $pass));
//Si los datos existen en la base de datos
if ($consulta->num_rows) {
echo "Identificación realizada con éxito";
echo "<script>
setTimeout(function() {
location.href = 'inicio.php';
}, 3000);
</script>";
}
//Caso contrario
else {
echo "Los datos no coinciden con los de la base de datos";
echo "<script>
setTimeout(function() {
location.href = 'login.php';
}, 3000);
</script>";
}
$consulta->free(); //Libero la memoria de los resultados de la consulta
$conexion->close(); //Cierro la conexión a la base de datos
Cuando los datos coinciden con los de la base de datos, se imprime un mensaje de éxito y se redirecciona hacia
inicio.php que en este ejemplo sería la página a la que el usuario accedería si se identifica correctamente, caso contrario, se imprime un mensaje de mala identificación y se redirecciona hacia
login.php que es en donde está el formulario.
La redirección la hago con JavaScript y no con la función
header, ya que estoy imprimiendo un mensaje antes de redireccionar, con lo cual, dicha función no tendría efecto.