Foros del Web » Programando para Internet » PHP »

Usario y Password correctos con MySQL y PHP

Estas en el tema de Usario y Password correctos con MySQL y PHP en el foro de PHP en Foros del Web. Pongo esta pregunta aquí porque abarca tanto PHP como MySQL Estoy haciendo un código para que el sistema verifique que el usuario y el password ...
  #1 (permalink)  
Antiguo 12/11/2012, 16:36
 
Fecha de Ingreso: diciembre-2008
Mensajes: 738
Antigüedad: 15 años, 4 meses
Puntos: 15
Usario y Password correctos con MySQL y PHP

Pongo esta pregunta aquí porque abarca tanto PHP como MySQL

Estoy haciendo un código para que el sistema verifique que el usuario y el password sean correctos. Pero con lo que tengo problemas es que pueda verificar que ese password corresponda a ese usuario. Tengo este código pero el problema con el es que le daría acceso si pone su usuario y un password que es de otro usuario.

Código PHP:
Ver original
  1. <?php
  2.             $aceptar=$_POST['aceptar'];
  3.             if ($aceptar=="") // SI EL BOTON DE ACEPTAR NO HA SIDO PRESIONADO
  4.              {
  5.         ?>  
  6.         <form method="post" action="<?php $PHP_SELF ?>">
  7.         Usuario: <br /><input type="text" name="login"> <br>
  8.         Password: <br /><input type="password" name="password"><br>
  9.        <input type="submit" name="aceptar" value="aceptar">&nbsp&nbsp
  10.        <input type="reset" name="borrar" value="Borrar">
  11.         </form>
  12.         <?php
  13.           } // CERRAMOS EL IF($ACEPTAR=="" )
  14.           else // EN CASO CONTRARIO, EN EL QUE SE HAYA PRESIONADO ACEPTAR
  15.           {
  16.             //password
  17.             $login=$_POST['login'];
  18.             $password=$_POST['password'];
  19.             $encriptado=md5($password);
  20.             mysql_select_db("wordpress",$conectar);
  21.             $sql ="SELECT * FROM password";
  22.             $resp = mysql_query($sql) or die(mysql_error());
  23.             while($columna = mysql_fetch_array($resp))
  24.             {
  25.                 $nombrefinal=  $columna['Nombre'];
  26.                 $passwordfinal= $columna['Password'];
  27.             }
  28.                 if (($nombrefinal!=$login)||($passwordfinal!=$encriptado)) {
  29.         ?>
  30.         <h2>Alguno de los datos que ingresaste es incorrecto</h2>  
  31.         <form method="post" action="<?php $PHP_SELF ?>">
  32.         Usuario: <br /><input type="text" name="login"> <br>
  33.         Password: <br /><input type="password" name="password"><br>
  34.        <input type="submit" name="aceptar" value="aceptar">&nbsp&nbsp
  35.        <input type="reset" name="borrar" value="Borrar">
  36.         </form>
  37.         <?php  
  38.                 } else {
  39.                     $_SESSION['login']=$login;
  40.                     $_SESSION['password']=$encriptado;
  41.                     echo "<meta http-equiv='refresh' content='0; URL=curriculums.php'>";
  42.                 }
  43.         ?>
  44.         <?php  } ?>
  #2 (permalink)  
Antiguo 12/11/2012, 17:27
Avatar de scorpion3d  
Fecha de Ingreso: mayo-2011
Mensajes: 92
Antigüedad: 12 años, 10 meses
Puntos: 19
Respuesta: Usario y Password correctos con MySQL y PHP

lo que dices no creo que pase en esa consulta.

ya elaboraste una prueba de lo que estas diciendo?

por otro lado, una cosa es que funcione y la otra que lo haga de la manera mas optima,

te sugiero que busques ejemplos en la web
__________________
www.elias.com.sv
  #3 (permalink)  
Antiguo 12/11/2012, 17:27
 
Fecha de Ingreso: octubre-2012
Ubicación: Austria
Mensajes: 47
Antigüedad: 11 años, 6 meses
Puntos: 7
Respuesta: Usario y Password correctos con MySQL y PHP

Veo bastantes cosas que deberias de mejorar en tu codigo... para empezar kreo q una tabla q se llame password no le veo muxo sentido,realmente password es un atributo de la tabla user! Otra cosa, en la select, deberias filtrar por el USER y PASSWORD introducidos en el formulario, y comprobar si el usuario existe mediante mysql_num_rows...

algo asi te aconsejo

Código PHP:
        $comprobacion mysql_query("select * from USER where 
            USERNAME = '"  
mysql_real_escape_string($this->user) . "'
            and PASSWORD = '" 
mysql_real_escape_string(MD5($this->password)) ."'");
        if (
mysql_num_rows($comprobacion) = 1
        { 
            
mysql_free_result($comprobacion);
            return 
true;
        }else {
            
mysql_free_result($comprobacion);
            return 
false;
        } 
  #4 (permalink)  
Antiguo 12/11/2012, 17:30
Avatar de LuaToto  
Fecha de Ingreso: octubre-2012
Ubicación: Veracruz
Mensajes: 26
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Usario y Password correctos con MySQL y PHP

La logica a seguir al iniciar sesion es buscar en tu tabla de usuarios el nombre de usuario que corresponda al que se acaba de logear, y si lo encuentra seleccionar de ese registro el campo donde tiene su contraseña, de esta manera la contraseña del usuario siempre corresponde a un solo usuario, para esto obviamente no debe de haber dos ususarios con el mismo nombre ya que esto no cumpliria con la integridad al estar admitiendo usuarios duplicados, Antes de gurdar un nuevo usuario debes de validar que no exista.

Con esto quiero darte a entender que tu algoritmo que seguiste para programar el inicio de sesion esta un poquito mal
  #5 (permalink)  
Antiguo 12/11/2012, 17:31
 
Fecha de Ingreso: diciembre-2008
Mensajes: 738
Antigüedad: 15 años, 4 meses
Puntos: 15
Respuesta: Usario y Password correctos con MySQL y PHP

Muchas gracias, voy a probarlo.

No, en la tabla password es donde tengo los usuarios con su password, no es una tabla diferente.
  #6 (permalink)  
Antiguo 12/11/2012, 17:37
 
Fecha de Ingreso: diciembre-2008
Mensajes: 738
Antigüedad: 15 años, 4 meses
Puntos: 15
Respuesta: Usario y Password correctos con MySQL y PHP

Cita:
Iniciado por LuaToto Ver Mensaje
La logica a seguir al iniciar sesion es buscar en tu tabla de usuarios el nombre de usuario que corresponda al que se acaba de logear, y si lo encuentra seleccionar de ese registro el campo donde tiene su contraseña, de esta manera la contraseña del usuario siempre corresponde a un solo usuario, para esto obviamente no debe de haber dos ususarios con el mismo nombre ya que esto no cumpliria con la integridad al estar admitiendo usuarios duplicados, Antes de gurdar un nuevo usuario debes de validar que no exista.

Con esto quiero darte a entender que tu algoritmo que seguiste para programar el inicio de sesion esta un poquito mal
De hecho en esta parte no necesito esa comprobación por lo siguiente. Este formulario es para que los empleadores puedan buscar currículums. Antes de poder entrar aquí ellos se dan de alta en la página (hecha en Wordpress) con un usuario y un password (aquí si hay verificación porque el sistema de administración es un plugin de Wordpress). En ese formulario se le pregunta al usuario si desea también tener acceso a la sección de empleadores (que es lo que estoy haciendo) y si así es, a mi cliente le va a llegar la solicitud.

Mi cliente es el que se encargará de dar de alta a los usuarios en la sección de empleadores (que mandaron su solicitud), y naturalmente no puede estar duplicado porque serán los mismos datos con los que se registraron previamente.
  #7 (permalink)  
Antiguo 12/11/2012, 18:04
 
Fecha de Ingreso: diciembre-2008
Mensajes: 738
Antigüedad: 15 años, 4 meses
Puntos: 15
Respuesta: Usario y Password correctos con MySQL y PHP

Cita:
Iniciado por oliverf2 Ver Mensaje
Veo bastantes cosas que deberias de mejorar en tu codigo... para empezar kreo q una tabla q se llame password no le veo muxo sentido,realmente password es un atributo de la tabla user! Otra cosa, en la select, deberias filtrar por el USER y PASSWORD introducidos en el formulario, y comprobar si el usuario existe mediante mysql_num_rows...

algo asi te aconsejo

Código PHP:
        $comprobacion mysql_query("select * from USER where 
            USERNAME = '"  
mysql_real_escape_string($this->user) . "'
            and PASSWORD = '" 
mysql_real_escape_string(MD5($this->password)) ."'");
        if (
mysql_num_rows($comprobacion) = 1
        { 
            
mysql_free_result($comprobacion);
            return 
true;
        }else {
            
mysql_free_result($comprobacion);
            return 
false;
        } 
Ojo que me salió esto:

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in E:\wamp\www\clientes\consulte\admin\index.php on line 27


Warning: mysql_free_result() expects parameter 1 to be resource, boolean given in E:\wamp\www\clientes\consulte\admin\index.php on line 41
  #8 (permalink)  
Antiguo 12/11/2012, 18:08
 
Fecha de Ingreso: octubre-2012
Ubicación: Austria
Mensajes: 47
Antigüedad: 11 años, 6 meses
Puntos: 7
Respuesta: Usario y Password correctos con MySQL y PHP

Ese error es debido a que ha habido algun problema con la consulta,puesto que la funcion mysql_num_rows no esta recibiendo el valor que esperaba ( por lo tanto, ha habido algun fallo en la consulta o en la conexion de la base de datos)

Etiquetas: mysql, password, sql, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:32.