Ver Mensaje Individual
  #2 (permalink)  
Antiguo 05/01/2015, 18:43
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años, 4 meses
Puntos: 977
Respuesta: Como validar contraseñas

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
  1. <form id = "login">
  2.     Usuario: <input type = "text" name = "usuario" />
  3.     Clave: <input type = "password" name = "clave" />
  4.     <input type = "submit" />
  5. </form>

Código Javascript:
Ver original
  1. document.querySelector("#login").addEventListener("submit", function(event){
  2.     event.preventDefault(); //Cancelo el envío del formulario
  3.  
  4.     var ajax = new XMLHttpRequest(),
  5.         usuario = document.querySelector("[name=usuario]").value,
  6.         clave = document.querySelector("[name=clave]").value,
  7.         datos = "usuario=" + usuario + "&clave=" + clave;
  8.  
  9.     ajax.open("POST", "verificar.php", true);
  10.     ajax.onreadystatechange = function(){
  11.         if (ajax.readyState == 4 && ajax.status == 200){
  12.             alert(ajax.responseText);
  13.         }
  14.         else{
  15.             alert("Se produjo un error: " + ajax.status);
  16.         }
  17.     };
  18.     ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  19.     ajax.send(datos);    
  20. }, false);

Código PHP:
Ver original
  1. //verificar.php
  2.  
  3. $mysqli = new mysqli('server', 'user', 'password', 'database');
  4.  
  5. if ($mysqli->connect_error){
  6.     exit('No se pudo realizar la conexión');
  7. }
  8.  
  9. $usuario = $mysqli->real_escape_string(strip_tags($_POST['usuario']));
  10. $clave = $mysqli->real_escape_string(strip_tags($_POST['clave']));
  11.  
  12. $query = $mysqli->query("SELECT * FROM usuarios WHERE usuario = '$usuario' AND clave = '$clave'") or exit('No se pudo realizar la consulta');
  13.  
  14. if ($query->num_rows){
  15.     echo 'Los datos son válidos';
  16. }
  17. else{
  18.     echo 'Los datos no son correctos';
  19. }
  20.  
  21. $query->free();
  22. $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
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand