Ver Mensaje Individual
  #2 (permalink)  
Antiguo 14/03/2015, 13:13
cron4l
 
Fecha de Ingreso: febrero-2015
Ubicación: Mexico
Mensajes: 46
Antigüedad: 9 años, 2 meses
Puntos: 3
Respuesta: mostrar mensaje de error login sin redireccionar pagina de login

Puedes usar ajax, te dejo el codigo que use yo en mi web para el login:
Código PHP:
Ver original
  1. <div class="contenedor">
  2.     <div id="formulario"    >
  3.         <form method="POST" action="return false" onsubmit="return false">
  4.             <div id="resultado"></div>
  5.             <img src="img/login.png" alt="" width="40" height="40">
  6.             <p><input type="text" name="user" id="user" value="" placeholder="Usuario"></p>
  7.             <p><input type="password" name="pass" id="pass" value="" placeholder="Password"></p>
  8.             <p><button onclick="Validar(document.getElementById('user').value, document.getElementById('pass').value);">Accesar</button></p>
  9.         </form>
  10.         <script>
  11.  
  12.         function Validar(user, pass)
  13.         {
  14.             $.ajax({
  15.                 url: "php/sql/validar.php",
  16.                 type: "POST",
  17.                 data: "user="+user+"&pass="+pass,
  18.                 success: function(resp){
  19.                 $('#resultado').html(resp)
  20.                 }      
  21.             });
  22.         }
  23.         </script>
  24.     </div>
  25. </div>

y en validar.php:

Código PHP:
Ver original
  1. <?php
  2. $con = new mysqli("localhost", "root", "", "comunicacion");
  3. if ($con->connect_errno)
  4. {
  5.     echo "Fallo al conectar a MySQL: (" . $con->connect_errno . ") " . $con->connect_error;
  6.     exit();
  7. }
  8. //Valida que los campos de usuario y contraseña tengan datos para su validacion
  9. @mysqli_query($con, "SET NAMES 'utf8'");
  10. $user = strtolower(mysqli_real_escape_string($con, $_POST['user']));
  11. $pass = mysqli_real_escape_string($con, $_POST['pass']);
  12. if ($user == null || $pass == null)
  13. {
  14.     echo '<span>Por favor complete todos los campos.</span>';
  15. }
  16. else
  17. {
  18.     $consulta = mysqli_query($con, "SELECT usuarios, contrasena FROM usuarios WHERE usuarios = '$user' AND contrasena = '$pass'");
  19.     if (mysqli_num_rows($consulta) > 0)
  20.     {
  21.         $_SESSION["usuario"] = $user;
  22.         echo '<script>location.href = "php/home.php"</script>';
  23.     }
  24.     else
  25.     {
  26.         echo '<span>El usuario y/o clave son incorrectas, vuelva a intentarlo.</span>';
  27.     }
  28. }  
  29. ?>

De esta manera si se equivoca manda un mensaje dentro del <div id="resultado"> sin necesidad de ir a otra pagina..

Saludos