PHP - Obtener id de user

 
Vista:
sin imagen de perfil
Val: 62
Ha aumentado su posición en 4 puestos en PHP (en relación al último mes)
Gráfica de PHP

Obtener id de user

Publicado por Giuliano (74 intervenciones) el 06/11/2013 20:28:17
Bueno ya se que hay varios hilos sobre esto, pero ya no se que hacer..

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
include("../../includes/php/conexion.php");
$conexion=conectarDB();
mysql_select_db("sgp",$conexion);
$user = $_POST['user'];
$pass = $_POST['pass'];
 
$queryuser="SELECT idUsuario from usuarios where username='$user''.";
$querypass="SELECT password from usuarios where $queryuser=idUsuario";
 
$buscaruser=mysql_query($queryuser,$conexion) or die( "Error en " . mysql_error() );
$validaruser=mysql_query($querypass,$conexion);
//echo $validaruser;
echo $buscaruser;
$existe=mysql_num_rows($buscaruser);
if ($_POST['Enviar']){
    if($user!='' && $pass!=''){
          if ($existe<0){
                if($validaruser==$pass){
                    echo "Logueado";
                }
                else{
                    echo "contraseña incorrecta";
                }
          }
          else{
            echo "Ese usuario no existe";
          }
    }
    else{
        echo "Complete todos los campos";
    }
 
}


No entiendo lo que pasa, hice un echo $buscaruser para ver el id y me da un id incorrecto, pero no se que puede estar mal
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Obtener id de user

Publicado por Mari Carmen (145 intervenciones) el 06/11/2013 21:31:59
Revisa que no haya nombres repetidos en la BBDD.

No es una buena práctica guardar las contraseñas en la BBDD en texto plano ni en una codificación reversible.
Asi que dicho esto yo haria un query tal que asi:

SELECT idUsuario FROM usuarios WHERE username='usuario' AND password='contraseña'

Así aun que el nombre de otros coincida la contraseña será distinta.Aun que deberías hacer que la columna username tenga la propiedad de unique.

Otra nota es que la librería mysql está obsoleta y deberías empezar a trabajar con la librería mysqli.
Fuente: http://www.php.net/manual/es/intro.mysql.php

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 62
Ha aumentado su posición en 4 puestos en PHP (en relación al último mes)
Gráfica de PHP

Obtener id de user

Publicado por Giuliano (74 intervenciones) el 07/11/2013 09:29:31
Pero lo que yo quiero es: verificar si existe el user, y si coincide la contraseña escrita con la de ese user en la base de datos. Tengo que comprobar eso antes de dejarlo entrar, no pueden existir 2 usuarios con igual nombre
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Obtener id de user

Publicado por Mari Carmen (145 intervenciones) el 07/11/2013 21:12:48
Es precisamente lo que hace el SELECT que he puesto, pero hace las 2 cosas a la vez.
Si el usuario es el mismo y la contraseña es la que ha metido el usuario entonces deja pasar.

Nota: No recomiendo hacer una petición a la BBDD que tenga variables de entrada que pueda poner el usuario sin escapar los caracteres ya que puede ocasionar una "Inyección de código SQL" que se traduce en perdida de datos o robo de datos. Por eso también te comentaba que no guardes las contraseñas en texto plano, por que si se produce una Inyección de código SQL te pueden robar las contraseñas de tus usuarios y posiblemente estos utilicen la misma contraseña en varios servicios o webs por lo que estarías exponiendo información que no es tuya a disposición de "Atacantes potenciales". Que si el servidor está en España te puede caer una multa tremenda por no cumplir la LOPD por parte de la AGPD. Vamos que se te cae el pelo.

El problema que comentas de un id distinto del que hay en la BBDD puede ser por que o una de dos, el username coincide con otro username y por ello te da un id distinto o es algo distinto. El problema de que sea algo distinto es que yo no te puedo decir cual es cuando no tengo acceso a la BBDD y nisiquiera sé que campos hay en la tabla.

Yo en tu situación miraría el id que te devuelve la consulta y buscaría al usuario al que pertenece ese id en la tabla, así sabrás por encima donde puedes tener el error.

Si puedes darnos más información pues podremos darte más ayuda.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 62
Ha aumentado su posición en 4 puestos en PHP (en relación al último mes)
Gráfica de PHP

Obtener id de user

Publicado por Giuliano (74 intervenciones) el 08/11/2013 05:56:28
Claro, y en cuanto a guardar las contraseñas, hoy por hoy se trabaja con bases de datos, vos me recomendarias entonces efectuar algun algoritmo de cifrado que la transforme, y descifrarla al obtenerla??

El siguiente codigo por lo menos funciona:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
include("../../includes/php/conexion.php");
$conexion=conectarDB();
mysql_select_db("sgp",$conexion);
//obtener datos de html
$user = $_POST['user'];
$pass = $_POST['pass'];
//tomar datos en bd
$queryuser="SELECT idUsuario from usuarios where username='$user'";
$buscaruser=mysql_query($queryuser,$conexion) or die( "Error en " . mysql_error() );
$querypass="SELECT * from usuarios where username='$user'";
$validaruser=mysql_query($querypass,$conexion);
 
//manipular datos
$row=mysql_fetch_assoc($validaruser);
$existe=mysql_num_rows($buscaruser);
if ($_POST['Enviar']){
    if($user!='' && $pass!=''){
          if ($existe>0){
                if($row['password']==$pass){
                    echo "Logueado";
                }
                else{
                    echo "contraseña incorrecta";
                }
          }
          else{
            echo "Ese usuario no existe";
          }
    }
    else{
        echo "Complete todos los campos";
    }
 
}
 
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Obtener id de user

Publicado por xve (6935 intervenciones) el 07/11/2013 10:15:26
Hola Giuliano, creo que te has liado un poco.... la manera que yo lo haría seria:

1
2
3
4
5
6
7
8
9
10
11
<?php
$sql="SELECT idUsuario from usuarios where username='".$user."' AND password='".$pass."'"
$result=mysql_query($queryuser,$conexion) or die( "Error en " . mysql_error() );
if($result)
{
    echo "usuario correcto";
 
}else{
    echo "usuario erroneo";
}
?>

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar