Foros del Web » Programando para Internet » PHP »

Dudita ???:::...

Estas en el tema de Dudita ???:::... en el foro de PHP en Foros del Web. Hola muchachos tengo una duda tengo dos tablas logeo y datos bien para tener un mejor control hago esto en la tabal datos pido q ...
  #1 (permalink)  
Antiguo 26/01/2009, 19:41
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Mensajes: 421
Antigüedad: 15 años, 4 meses
Puntos: 0
Pregunta Dudita ???:::...

Hola muchachos tengo una duda tengo dos tablas logeo y datos
bien para tener un mejor control hago esto en la tabal datos pido q inserte su contrasena de logeo aqui surge mi duda como puedo validar para q la contrasena q inserte sea la misma que la de logeo si esta en una tabla distinta hice esto

$sql = mysql_query("SELECT * FROM login WHERE password='$password'");
$datos = mysql_fetch_array($sql);
if($datos['password'] == $password) {

el problema es q la parte del where no me lo realiza osea cuando estoy llenado la tabla datos y al ultimo pido la contrasena pongo por decir 123 la contrasena de otro usuario y lo inserta y pongo 456 de este usuario tambien lo inserta
ahora en el where puse tambien nick='$usuario' pero no puedo poq no me llena el nick a esta tabla
  #2 (permalink)  
Antiguo 26/01/2009, 19:59
Avatar de kurokishi  
Fecha de Ingreso: enero-2009
Ubicación: Tenochtitlán
Mensajes: 109
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Dudita ???:::...

pues yo tengo algo parecido, solo que en vez de pedir el password pido el nombre de usuario:
Código PHP:
$usuario=$_POST['cuenta'];
$pass=$_POST['pass'];
if (
$usuario !=$_SESSION['usuario'])//aqui el usuario lo guardo en una variable de sesion, por lo que si no coincide no deja modificar los datos
{
echo 
"¡¡Usuario incorrecto!! Verfifique sus datos e intentelo nuevamente.";
exit;
}
else
{
$sql="UPDATE comparacion SET contrasena='$pass' where usuario='$usuario'";
if (@
pg_query($sql))
{
echo 
"Los datos se actualizaron con exito.";
}
else
{
echo 
"Error al guardar los datos";
}

deberias de probar haciendo algo asi con las variables de sesion, guarda el password en una variable de sesion y lo comparas.
Tal vez no sea lo mas idoneo, pero como no soy tan 'bueno' en esto de php es la unica forma en que se me ocurre
Espero te sirva de algo o de menos te aclare algo
Saludos!
  #3 (permalink)  
Antiguo 26/01/2009, 20:47
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Mensajes: 421
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Dudita ???:::...

$usuario=$_POST['cuenta'];
$pass=$_POST['pass'];

Esto te llena de tu formulario
  #4 (permalink)  
Antiguo 26/01/2009, 21:17
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Dudita ???:::...

Estás duplicando posts otra vez majony.

Insisto, piensa un poco más en el proceso que va a seguir un script, o en este caso, una consulta sql, antes de programar.

Estás pidiendo de tu tabla todas las filas que tengan como password $password. Luego comparas los datos extraidos con $password. No es lógico que estas comparaciones sean verdaderas? Digo, si pides las filas con password A, entonces al comparar estas mismas filas con A tendrás un true por respuesta no?

Ya te lo dije en otro mensaje. No tiene caso que guardes la contraseña en 2 tablas distintas. Basta con que hagas la consulta a tu tabla con los datos de login, indicándole el nombre de usuario, o su id si es que lo tiene, y solicitar el password. Luego comparas este dato extraido de la bd con el que tu usuario puso en el formulario, y si son iguales continuas con el proceso.

Obviamente debes tener una forma de mantener el nombre de usuario o su id para indicarle a tu sistema que está logueado. Digamos sesiones. Cuando tu usuario se loguea le creas una variable de sesión con su nombre de usuario, y esta variable la usas después para verificar la contraseña.

No tienes un error de programación, sino de lógica. Y esos errores se solucionan con hoja y papel y no adivinando el código "correcto"

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 23:53.