elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  como puedo validar el login
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: como puedo validar el login  (Leído 2,998 veces)
geshiro

Desconectado Desconectado

Mensajes: 178


Ver Perfil
como puedo validar el login
« en: 4 Junio 2015, 23:05 pm »

alguien me puede ayudar o guia como validad el login de php para cuando pongo la contraseña mal o usuario que no me deje pasar a otra pagina como esta osea que me mande una alerta o meensaje

Código
  1. <!doctype html>
  2. <html lang="en" >
  3.    <meta charset ="UTF-8">
  4. <title>formulario flat design</title>
  5. <link rel="stylesheet" href="css/main.css"/>
  6. </head>
  7. <body>  
  8.  <div id="applicationform">
  9. <p id="title">Welcome to </p>
  10.  
  11. <form action="login.php" methos="POST">  
  12. <input type="mail" id="user" name="User" placeholder="Username" autocomplete="off">
  13. <input type="password" id="pass" name="Pass"  placeholder="Password">
  14. <input type="submit" id="fade2" value="login" class="login" href="index.html">
  15. </form>
  16. </div>
  17. </body>
  18. </html>
  19.  
  20.  

Código
  1. <?php
  2.    $User = $_REQUEST['User'];
  3.    $Pass = $_REQUEST['Pass'];
  4.  
  5.    $conexion = mysql_connect("localhost","root") or die ("PROBLEMAS AL CONECTA EL SERVIDOR");
  6.    mysql_select_db("adsu",$conexion) or die ("PROBLEMAS A CONECTAR CON LA DB");
  7.  
  8.    $estandar = mysql_query("SELECT * FROM usuario where login = '".$User."' and pass = '".$Pass."'",$conexion);
  9.    $admin    = mysql_query("SELECT * FROM usuario where login = '".$User."' and pass = '".$Pass."'",$conexion);
  10.  
  11.    if($row = mysql_fetch_array($estandar))
  12.    {
  13.      header("Location: index_empleado.html");
  14.  
  15.    }else if($row = mysql_fetch_array($admin))
  16.         {
  17.            header("Location: index_admin.html");
  18.  
  19.         }
  20.  
  21. ?>
  22.  


En línea

LaThortilla (Effort)

Desconectado Desconectado

Mensajes: 234


¿En que vida harás lo que en esta no?


Ver Perfil WWW
Re: como puedo validar el login
« Respuesta #1 en: 5 Junio 2015, 17:44 pm »

puedes hacer dos cosas desde el php o redireccionas o retornas.

-redireccionar:
si es incorrecto el password:
Código
  1. header ("Location: localhost/directorio/login.php");
-si es  correcto:
Código
  1. header ("Location: localhost/directorio/index.php");

-retornar valor.
     En este caso necesitarias utilizar ajax.... busca  un manual..
procedimiento:
      1-hacer peticion ajax a un archivo php
      2- procesar el password y usuario enviado desde ajax si password y usuario son validos.
     -Si es correcto:
             redireccionas a tu pagina home
      -sino retornas un valor (ejemplo 0)
      3- procesar el valor obtenido si es 0 mostrar un mensaje (password o usuario incorrecto)

Aqui tienes otra forma de hacerlo...
http://www.runnable.com/UyClLhrKWGFrcrQW/simple-php-mysql-jquery-login-script


« Última modificación: 5 Junio 2015, 17:49 pm por Effort » En línea

DarK_FirefoX


Desconectado Desconectado

Mensajes: 1.250


Be the change you wanna see in te world


Ver Perfil
Re: como puedo validar el login
« Respuesta #2 en: 5 Junio 2015, 18:51 pm »

Primero, utilizo poco:

Código

En cambio utilizo:

Citar
mysqli();

Ahora, si entiendo bien, quieres mostrar una página en caso de que la contraseña esté mal!

Para esto tienes que comprobar que la contraseña ingresada sea la correcta para el usuario ingresado. Por lo tanto tu consulta a la base de datos te debe dar 1 fila (y solo una) en caso de que sea correcta. En caso contrario te devolverá 0 filas.

Puedes utilizar la función:

Código

que te devuelve un int que representa el número de filas en la consulta.

Por ejemplo:

Código
  1. $estandar = mysql_query("SELECT * FROM usuario where login = '".$User."' and pass = '".$Pass."'",$conexion);
  2.  
  3. if(mysql_num_rows($estandar)==0){
  4. header("Location: direccionDeTuArchivoErrorDeContrasenna.php");
  5. }
  6. else {
  7. header("Location: ingresoContrasennaCorrectaArchivo.php");
  8. }
  9.  

Nota: Asumo que debes controlar que solo haya un usuario con el mismo "login".

Ojo: También deberías pensar en utilizar la función hash() para cifrar los passwords en la BD

Salu2s
En línea

geshiro

Desconectado Desconectado

Mensajes: 178


Ver Perfil
Re: como puedo validar el login
« Respuesta #3 en: 6 Junio 2015, 00:49 am »

como le puedo hacer porque al momento que intento meter el login de usuario normal me sale error y el de admin no

<?php
    $User = $_REQUEST['User'];
    $Pass = $_REQUEST['Pass'];

    $conexion = mysql_connect("localhost","root") or die ("PROBLEMAS AL CONECTA EL SERVIDOR");
    mysql_select_db("db_login",$conexion) or die ("PROBLEMAS A CONECTAR CON LA DB");

    $employee = mysql_query("SELECT * FROM usuario where login = '".$User."' and pass = '".$Pass."'",$conexion);
    $admin    = mysql_query("SELECT * FROM usuario where login = '".$User."' and adminpass = '".$Pass."'",$conexion);
 
   if(mysql_num_rows($employee)==0)
    {
       header("Location: index.html");

    }else
         {
          header("Location: index_employee.html");
         }
    if(mysql_num_rows($admin)==0)
    {
        header("Location: index.html");
    }else
         {
            header("Location: index_admin.html");
         }
   
?>
En línea

DarK_FirefoX


Desconectado Desconectado

Mensajes: 1.250


Be the change you wanna see in te world


Ver Perfil
Re: como puedo validar el login
« Respuesta #4 en: 6 Junio 2015, 01:56 am »

Primero: Utiliza las etiquetas GeSHi para publicar código.

Ahora, no entiendo muy bien cual fue tu problema, o tal ves no te explicaste del todo bien, pero ten en cuenta que en el código que pusiste tienes un problema.

Código
  1. if(mysql_num_rows($employee)==0)
  2.    {
  3.       header("Location: index.html");
  4.    }else
  5.         {
  6.          header("Location: index_employee.html");
  7.         }
  8.    if(mysql_num_rows($admin)==0)
  9.    {
  10.        header("Location: index.html");
  11.    }else
  12.         {
  13.            header("Location: index_admin.html");
  14.         }

Date cuenta que cuando haces el primer if, si el resultado de mysql_num_rows($employee) es 0 entonces te va a redireccionar a index.html. Y en caso contrario a index_employee.html. Por lo tanto no va a alcanzar nunca la linea del otro if.

Luego, deberías hacer algo como:

Código
  1. if(mysql_num_rows($employee)==0)
  2.    {
  3.       header("Location: index.html");
  4.    }else
  5.         {
  6. //Y aquí comprobar el caso del administrador
  7. }

En lo personal, aunque no estoy seguro lo que quieres y/o lo que estás tratando de hacer, no me parece adecuada esta forma que veo para controlar si el usuario es administrador, aunque esto me parece que viene dado un mal diseño de la BD. Lo que podrías hacer, es un campo tipo boolean en la BD que determina si es administrador o no. En este caso, un administrador sería un usuario normal, pero con privilegios de administrador, lo cual te eliminarías hacer esa doble query.

Espero esto te ayude. Cualquier otra cosa, no dudes en preguntar.

Salu2s
En línea

kaiserr

Desconectado Desconectado

Mensajes: 242


constancia y dedicacion


Ver Perfil
Re: como puedo validar el login
« Respuesta #5 en: 6 Junio 2015, 02:32 am »

Como veo que ya te esta ayudando DarK_FirefoX no te vlveré a decir lo mismo.

Pero quería mencionar el tema de la seguridad. Tu metes directamente los datos que recibes por POST a la consulta de la BD... Ten cuidado porque podrían hacerte un SQL injection.

Mira de utilozar funciones como: mysql_real_escape_string

Saludos.
En línea

DarK_FirefoX


Desconectado Desconectado

Mensajes: 1.250


Be the change you wanna see in te world


Ver Perfil
Re: como puedo validar el login
« Respuesta #6 en: 6 Junio 2015, 02:53 am »

Como veo que ya te esta ayudando DarK_FirefoX no te vlveré a decir lo mismo.

Pero quería mencionar el tema de la seguridad. Tu metes directamente los datos que recibes por POST a la consulta de la BD... Ten cuidado porque podrían hacerte un SQL injection.

Mira de utilozar funciones como: mysql_real_escape_string

Saludos.

Exactamente, no había hecho el comentario pues el nombre de la página era:

Citar
formulario flat design

Y pense que era algo más bien de pruebas y tal.

Pero si, debes cuidarte de una SQL Injection, en lo personal utilizo una función así para "sanear" los datos que me entra el user antes de procesarlos, la funcion recibe los datos y la conexión con la base de datos:

Código
  1. function sanitize($connection, $data)
  2. {
  3. }

(parece un poco exagerada xD :P)

Nota: Recibo un "link" pues utilizo mysqli
« Última modificación: 6 Junio 2015, 02:57 am por DarK_FirefoX » En línea

geshiro

Desconectado Desconectado

Mensajes: 178


Ver Perfil
Re: como puedo validar el login
« Respuesta #7 en: 7 Junio 2015, 01:10 am »

alguine me puede ayudar como puedo arreglar mi codigo php para no pasar los datos directos por POST

Código
  1. <?php
  2.    $User = $_REQUEST['User'];
  3.    $Pass = $_REQUEST['Pass'];
  4.  
  5.    $conexion = mysql_connect("localhost","root") or die ("PROBLEMAS AL CONECTA EL SERVIDOR");
  6.    mysql_select_db("db_login",$conexion) or die ("PROBLEMAS A CONECTAR CON LA DB");
  7.  
  8.    $estandar = mysql_query("SELECT * FROM usuario where login = '".$User."' and pass = '".$Pass."'",$conexion);
  9.    $admin    = mysql_query("SELECT * FROM usuario where login = '".$User."' and adminpass = '".$Pass."'",$conexion);
  10.  
  11.    if(mysql_num_rows($estandar)==0)
  12.    {
  13.       header("Location: index.html");
  14.  
  15.    }else
  16.         {
  17.          header("Location: index_employee.html");
  18.         }
  19.  
  20.    if(mysql_num_rows($admin)==0)
  21.    {
  22.      header("Location: index.html");
  23.  
  24.    }else
  25.         {
  26.          header("Location: index_admin.html");
  27.         }
  28. ?>
  29.  
  30.  
En línea

DarK_FirefoX


Desconectado Desconectado

Mensajes: 1.250


Be the change you wanna see in te world


Ver Perfil
Re: como puedo validar el login
« Respuesta #8 en: 7 Junio 2015, 03:24 am »

alguine me puede ayudar como puedo arreglar mi codigo php para no pasar los datos directos por POST

Y cuál es tu objetivo?
En línea

geshiro

Desconectado Desconectado

Mensajes: 178


Ver Perfil
Re: como puedo validar el login
« Respuesta #9 en: 7 Junio 2015, 04:28 am »

osea poder acomoderlos y no sacarlos del method POST
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Ayuda] Como puedo validar esto? « 1 2 »
Programación Visual Basic
Dreamaker 17 5,887 Último mensaje 31 Mayo 2010, 11:31 am
por LeandroA
¿Donde puedo consegir un login basico y avanzado en php?
PHP
Liz_sc 4 2,978 Último mensaje 30 Julio 2010, 06:26 am
por Castg!
[Batch] Como puedo validar la variable? [Solucionado] « 1 2 »
Scripting
Batitoul 13 7,963 Último mensaje 12 Septiembre 2011, 00:20 am
por leogtz
¿Cómo puedo crear un "register/login" en el cuál me registre en una web?
Programación Visual Basic
Eduardo223 2 2,189 Último mensaje 25 Septiembre 2011, 18:17 pm
por тαптяα
Seguridad: Como puedo validar el filename en AJAX?
Desarrollo Web
Citrusl 5 776 Último mensaje 2 Diciembre 2019, 02:31 am
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines