Autentificacion De Usuario En Base De Datos Online


Objetivo: Autentificacion De Usuario En Base De Datos Online
Hola, necesito ayuda.
Después de examinar el código que hizo un compañero de nuestro foro, en el cual mostraba e insertaba datos de una base de datos MySQL, conseguí hacerlo con una base de datos que tenia yo en una pagina web.

Ahora intento hacer un loggin desde los datos de la web. El problema es que tengo un campo con usuario y otro con contraseña. Toma los dos datos de sus respectivos campos y lo siguiente seria cargar otro form si el loggeo es correcto. Pero ahora por el momento pues estaba intentado que si el loggeo era correcto, que en el campo de usuario pusiese correcto y si no, pues error. El problema es que cuando teóricamente tiene que enviar la consulta me devuelve Object:Null o algo por el estilo... Y no entiendo porque... Alguien me podría ayudar?

Si queréis pongo el código que tengo hecho, aunque aviso, es un desastre porque estoy aprendiendo y esta llenos de comentarios y cosas raras!

Un saludo a todos!

----------------
Editado
--------------------------------

Hola, buenos dias a todos.
Ahora que he tenido un momentito, he limpiado un poco el codigo, y os lo pongo aqui para que me ayudeis.
Como vereis va a tener un monton de cosas que no tienen lógica. Y otros comentarios que son los de la aplicacion que me descargue de nuestro compañero en el cual agregaba a una tabla nombre y edad.
' gambas class file
PUBLIC conectar AS Connection ''Declaracion de Variable para la coneccion
PUBLIC id AS String
PUBLIC nombre AS String
PUBLIC usuario AS String
PUBLIC contrasenya AS String


PRIVATE FUNCTION login(query AS String) AS Result ''Funcion para conectar base de datos y ejecutar una sentencia
DIM resultado AS Result
conectar = NEW Connection
conectar.close
conectar.Type = "mysql"
conectar.Host = "direccion"
conectar.User = "usuario"
conectar.Password = "contraseña"
conectar.Name = "nombreBD"
conectar.Open
resultado = conectar.Exec(query)
RETURN resultado
END
PRIVATE SUB enviarDatos() ''es un tipo de funcion pero no retorna valor es para cargar los datos a la ColumnView
DIM resultado AS Result
DIM n AS Integer

resultado = conectar("SELECT id,usuario,contrasenya,nombre FROM tabla WHERE usuario='" & usuario_txt.Text & "' AND contrasenya='" & contrasenya_txt.Text & "'") ''Llamo a la funcion coneccion y envio la sentencia

FOR n = 0 TO resultado.Count - 1 STEP +1 ''Sistema de repeticion para agregar los datos a la columna
IF resultado!usuario = usuario_txt.Text AND IF resultado!contrasenya = contrasenya_txt.Text THEN

id = resultado!id
nombre = resultado!nombre
usuario = resultado!usuario
contrasenya = resultado!contrasenya

ELSE
usuario_txt.Text = "error"
END IF
NEXT
conectar.Close ''Cierro la coneccion
END

PUBLIC SUB Button1_Click()
Message(usuario_txt.Text)
enviarDatos()


''login.Close
''formularioMadre.Show

END

PUBLIC SUB Form_Open()



END

Lo del usuario, contraseña, el nombre de la tabla y todo eso, lo he cambiado por seguridad.
Lo digo por si alguien piensa que el error de conexión es ese.

última edición por Cubel el Jueves, 14 Enero 2010, 13:19; editado 1 vez
Objetivo: Re: Autentificacion De Usuario En Base De Datos Online
Citar:
Después de examinar el código que hizo un compañero de nuestro foro, en el cual mostraba e insertaba datos de una base de datos MySQL, conseguí hacerlo con una base de datos que tenia yo en una pagina web.

Ahora intento hacer un loggin desde los datos de la web. El problema es que tengo un campo con usuario y otro con contraseña. Toma los dos datos de sus respectivos campos y lo siguiente seria cargar otro form si el loggeo es correcto. Pero ahora por el momento pues estaba intentado que si el loggeo era correcto, que en el campo de usuario pusiese correcto y si no, pues error. El problema es que cuando teóricamente tiene que enviar la consulta me devuelve Object:Null o algo por el estilo... Y no entiendo porque... Alguien me podría ayudar?

Si queréis pongo el código que tengo hecho, aunque aviso, es un desastre porque estoy aprendiendo y esta llenos de comentarios y cosas raras!

Al escribir ese post viste una plantilla que te dice alguna información que debieras facilitar para que podamos orientarte ¿Como esperas que sepamos contestarte si ni siquiera vemos el código ni tampoco entendemos (al menos yo) cual es tu problema?

Supongo que tu te logeas en una base de datos y luego quieres que se abra un formulario nuevo con una consulta. Habría que ver si es un login válido o no, si estás enviando los datos al nuevo formulario bien o no, etc

Eso de object null suena a que no tengas establecida la conexión o bien que no hayas pasado bien el objeto connection al nuevo formulario y por tanto allí tengas un objeto connection declarado y vacío.

¡No somos adivinos hombre!


Por último, en mi opinión este post debiera ir en General o quizá mejor en base de datos.

última edición por soplo el Jueves, 14 Enero 2010, 15:44; editado 1 vez
Perfil MP  
Objetivo: Re: Autentificacion De Usuario En Base De Datos Online
Soplo, para el carrooooooo!

Cómo que no ves el código? Yo si lo veo justo en el mensaje antes del tuyo y el problema es muy claro:

Está usando mal los métodos "login" y "enviar_datos". El método login no veo donde se ejecuta, por tanto la conexión no existe al momento de llamar enviar_datos.
Por otra parte la variable "resultado" debería de ser de ámbito global a la clase, declarada con PRIVATE. Y algunas cosas más, por lo que recomiendo que revise los hilos donde se habla de conexiones a base de datos.

Muevo el post al foro de bases de datos.

Saludos

Perfil MP  
Objetivo: Re: Autentificacion De Usuario En Base De Datos Online
Ok, ok. Gracias, esta tarde probare. Y lo siento por no ponerlo en el apartado de BD, pero lo puse aquí porque como iba a poner código pensé que debería ponerlo aquí.

no volverá a pasar. Ahora después comento como ha salido y si eso seguiré pidiendo ayuda!

Gracias!!

Objetivo: Re: Autentificacion De Usuario En Base De Datos Online
ostras pues si. Ahora si que lo veo

¿ ?

Shockeado total.


Mis disculpas Cubel. No se porqué no lo vi pero te prometo que no lo vi.

Perfil MP  
Objetivo: Re: Autentificacion De Usuario En Base De Datos Online
Tranquilo no tienes el porque pedirme disculpas.
Ahora si tengo un momento intento hacer lo que me ha dicho jguardon y después os digo como he quedado! espero que sea para daros las gracias y no sea para preguntaros mas cosas!!


----------------
Editado
------------------------

Bueno traigo buenas noticias. El problema a sido que claro copiar esto, modificar lo otro, copiar lo otro que ya habías modificado, etc, etc... no coincidía nada!!

He cogido el primero que hizo el compañero nuestro, después he cogido el que hice con lo de mi base de datos para comprobar que por el momento lo único que había cambiado eran los datos de conexión y las consultas...
Cuando he comprobado que efectivamente era así, me dedicado a copiarlo linea por linea para ver que todo lo que ponía era con lógica y ya me funciona!!

Solo tengo un problema, y es en el IF, lo he puesto sin saber muy bien como funciona... La cuestión es que me funciona, pero lo que he puesto a sido, si Dato1 y Dato2 son iguales como los de la base de datos, que haga la función si no que haga la funcion2. El problema es que yo antes cuando programaba en actionscript, el if no era como este, es decir, podía poner solo un condicional, lo que seria si dato1 coincide, ejecutar función, y aquí no he podido, a tenido que ser, dato1 y dato2, ó, dato1 OR IF dato2...
no se si me entendéis... como puedo hacerlo para que el condicional sea de solo un dato?


P.D.: Gracias a todos los que estáis haciendo que me sea mas fácil incorporarme a este lenguaje!

última edición por Cubel el Jueves, 14 Enero 2010, 21:23; editado 2 veces

Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.41s (PHP: -75% SQL: 175%)
Consultas SQL: 48 - Debug off - GZIP Activado