Nunca hagas esas comprobaciones en el lado del cliente porque representaría una seria amenaza de seguridad para tu aplicación. Mejor usa Ajax, así evitarás recargar la página.
Un ejemplo muy básico:
Código HTML:
Ver original Usuario:
<input type = "text" name = "usuario" /> Clave:
<input type = "password" name = "clave" /> <input type = "submit" />
Código Javascript
:
Ver originaldocument.querySelector("#login").addEventListener("submit", function(event){
event.preventDefault(); //Cancelo el envío del formulario
var ajax = new XMLHttpRequest(),
usuario = document.querySelector("[name=usuario]").value,
clave = document.querySelector("[name=clave]").value,
datos = "usuario=" + usuario + "&clave=" + clave;
ajax.open("POST", "verificar.php", true);
ajax.onreadystatechange = function(){
if (ajax.readyState == 4 && ajax.status == 200){
alert(ajax.responseText);
}
else{
alert("Se produjo un error: " + ajax.status);
}
};
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
ajax.send(datos);
}, false);
Código PHP:
Ver original//verificar.php
$mysqli = new mysqli('server', 'user', 'password', 'database');
if ($mysqli->connect_error){
exit('No se pudo realizar la conexión'); }
$usuario = $mysqli->real_escape_string(strip_tags($_POST['usuario'])); $clave = $mysqli->real_escape_string(strip_tags($_POST['clave']));
$query = $mysqli->query("SELECT * FROM usuarios WHERE usuario = '$usuario' AND clave = '$clave'") or
exit('No se pudo realizar la consulta');
if ($query->num_rows){
echo 'Los datos son válidos';
}
else{
echo 'Los datos no son correctos';
}
$query->free();
$mysqli->close();
Mediante Ajax, envías el nombre de usuario y clave ingresados en los campos del formulario, te conectas a la base de datos, limpias los datos de posible contenido malicioso, realizas la búsqueda en la tabla respectiva de la base de datos y si la consulta devuelve resultados, muestras un mensaje en el que le indicas al usuario que los datos son correctos, caso contrario, le informas que los datos son incorrectos. Esa será la respuesta que reciba la petición asíncrona (Ajax) y que mostrarás en un mensaje de alerta.
Saludos