Si deseas reemplazar la redirección a la página de error por un mensaje en la misma página, debes de utilizar
Ajax.
Básicamente, envías los datos para su procesamiento, previenes el comportamiento natural del evento
submit, que es el que se ejecuta cuando envías los datos del formulario, ejecutas el método Ajax y, cuando recibas la respuesta del servidor, muestras dicho resultado en el párrafo.
Código Javascript
:
Ver original$("form").submit(function(e){
e.preventDefault();
$.ajax({
url: $(this).prop("action"),
type: $(this).prop("method"),
data: $(this).serialize(),
success: function(response){
$("#parrafo").html(response);
}
});
});
Mientras que en el archivo que procesa los datos, que puede ser el mismo archivo u otro, harías esto:
Código PHP:
Ver original$conexion = new mysqli ("servidor", "usuario", "password", "bd");
if ($conexion->connect_error)
exit ("No se ha podido realizar la conexión con la base de datos");
$user = $conexion->real_escape_string(strip_tags($_POST["user"])); $pass = $conexion->real_escape_string(strip_tags($_POST["pass"]));
$consulta = $conexion->query(sprintf("SELECT * FROM usuarios WHERE user = '%s' AND pass = '%s'", $user, $pass));
if ($consulta->num_rows)
header ("Location: inicio.php"); else
echo "Error: La identificación ha fallado. Vuelva a intentarlo";
$consulta->free();
$conexion->close();
Realizo la conexión con la base de datos, una vez establecida, desinfecto los datos recibidos de posible contenido malicioso, luego, realizo la consulta, si obtengo resultados de dicha consulta, redirecciono al usuario hacia la vista principal de la página (cuyo archivo puede tener otro nombre, este es solo un ejemplo), caso contrario, imprimo un mensaje de error de identificación, que es el que se mostrará en el párrafo.
Saludos