Foros del Web » Programando para Internet » PHP »

autenticación para aplicación php/mysql

Estas en el tema de autenticación para aplicación php/mysql en el foro de PHP en Foros del Web. Hola a todos! Estoy empezando con esto de las aplicaciones php y mysql y bueno, me encuentro con un inconveniente. El problema es que estoy ...
  #1 (permalink)  
Antiguo 25/10/2004, 10:53
 
Fecha de Ingreso: septiembre-2004
Mensajes: 203
Antigüedad: 13 años, 2 meses
Puntos: 0
autenticación para aplicación php/mysql

Hola a todos! Estoy empezando con esto de las aplicaciones php y mysql y bueno, me encuentro con un inconveniente. El problema es que estoy haciendo una aplicación que se usará localmente y a través de internet, para lo cual, necesito que se tenga que loguear el usuario para poder acceder a la aplicación. Alguien me podría orientar o recomendarme algún tutorial "para novatos" ?
Muchas gracias a todos de antemano.
Saludos
Leo

Última edición por impala; 25/10/2004 a las 10:57
  #2 (permalink)  
Antiguo 25/10/2004, 11:11
Avatar de Christatos  
Fecha de Ingreso: julio-2003
Ubicación: Badajoz, Extremadura, España
Mensajes: 194
Antigüedad: 14 años, 5 meses
Puntos: 0
Hola, tío!

Qué necesitas exáctamente? Encriptar la contraseña? Registrar usuarios?

Deberías especificar un poco más, no creo que nadie pueda darte una ayuda tan genérica... Manuales de php encontrarás por cientos en cualquier página de desarrollo, como en http://www.desarrolloweb.com que, con que te registres gratuítamente, podrás acceder a mil y un tutorial y/o artículos sobre desarrollo web.

Un saludo, bienvenido al club!
  #3 (permalink)  
Antiguo 25/10/2004, 11:16
 
Fecha de Ingreso: septiembre-2004
Mensajes: 203
Antigüedad: 13 años, 2 meses
Puntos: 0
lo que quiero hacer es algo sencillo para que nadie que encuentre la pagina pueda entrar, solo quiero poner una página inicial en la que me pida un user y pass para poder acceder a la aplicacion ... creo que fui explícito, sino, diganmelo e intento preguntarlo de otra forma.
SAludos
Leo
  #4 (permalink)  
Antiguo 25/10/2004, 11:23
Avatar de Christatos  
Fecha de Ingreso: julio-2003
Ubicación: Badajoz, Extremadura, España
Mensajes: 194
Antigüedad: 14 años, 5 meses
Puntos: 0
Ah, pues sencillo:

Haz una tabla con id_usuario, con nick_usuario y con pass_usuario y, al salir esa página, pones dos cajitas de texto y un botoncín de aceptar y, cuando aceptes haces el submit del formulario. En otra página (o en esa misma con una bandera) recibes (te recomiendo el método $_post, mejor que el $_get [esta es mi opinión personal]) esos valores y los compruebas con una sql en mysql.

No sé si necesitas más datos... es, digamos que lo básico en php (o asp...).

Si esto te cuesta, entonces lo mejor es que busques realmente un manual para principiantes.

Suerte, colega!
  #5 (permalink)  
Antiguo 25/10/2004, 11:27
 
Fecha de Ingreso: septiembre-2004
Mensajes: 203
Antigüedad: 13 años, 2 meses
Puntos: 0
La respuesta fue sencillísima !!!! Muchas gracias !!! Lo que no entiendo es cómo no se me ocurrió antes ... nuevamente, muchas gracias !
Saludos
Leo
  #6 (permalink)  
Antiguo 25/10/2004, 11:35
Avatar de Christatos  
Fecha de Ingreso: julio-2003
Ubicación: Badajoz, Extremadura, España
Mensajes: 194
Antigüedad: 14 años, 5 meses
Puntos: 0
Er... no sé si es sarcasmo, pero si no lo es, te deseo suerte!

Por cierto, a lo mejor te interesa encriptar la contraseña para que no se vea directamente con texto normal en las tablas de tu base de datos, cuando hagas el INSERT INTO de tus usuarios y los des de alta, pon esta función en tu sql: password(): ahí va un ejemplín a ver si ayudo algo más:

INSERT INTO tablausuarios nick_usuario, pass_usuario VALUES $_post["txtnickusu"], PASSWORD($_post["txtpassusu"];

Por cierto: Esta función es sólo de encriptación, no de desencriptación, con lo cuál no podrás hacer un SELECT y sacar desencriptada esa contraseña antes encriptada.

Suerte de nuevo!
  #7 (permalink)  
Antiguo 25/10/2004, 11:47
 
Fecha de Ingreso: septiembre-2004
Mensajes: 203
Antigüedad: 13 años, 2 meses
Puntos: 0
Amigo, claro que no es sarcasmo ! Pero si me decis que se encripta pero luego no se desencripta, cómo hago para validar al usuario ????
  #8 (permalink)  
Antiguo 25/10/2004, 11:57
Avatar de Christatos  
Fecha de Ingreso: julio-2003
Ubicación: Badajoz, Extremadura, España
Mensajes: 194
Antigüedad: 14 años, 5 meses
Puntos: 0
Tampoco te creas, si fuera sarcasmo no me importaría, jejeje...

Bueno, al tema: cuando lo intentes validar tendrás que ver si existe en la BD, por tanto tendrás que ejecutar otra sql:

SELECT * FROM usuarios WHERE passusu = PASSWORD($_post["txtpassusu"]) AND nickusu = $_post["txtnickusu"]

Así que no necesitarás la función inversa a PASSWORD, porque siempre hace la misma encriptación para una misma palabra (o eso creo; porque si no es eso, de cualquier manera es compatible, pues la reconoce).

Salu2!
  #9 (permalink)  
Antiguo 25/10/2004, 12:13
 
Fecha de Ingreso: septiembre-2004
Mensajes: 203
Antigüedad: 13 años, 2 meses
Puntos: 0
Bueno, me pongo ya mismo a probar todo esto.
Por enésima vez, muchas gracias !
Saludos
Leo
  #10 (permalink)  
Antiguo 25/10/2004, 12:37
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Si quieres algo ya hecho basado en Mysql (como BD para tus usuarios) y Sesiones (para el seguimiento del usuario en la sesión que autentifique para el N° de páginas/scripts que necesites .. no sólo una página ..):

Autentificator
http://php.cluster-web.com/autentificator

By mi xD ..

Un salum
  #11 (permalink)  
Antiguo 25/10/2004, 15:33
 
Fecha de Ingreso: enero-2004
Mensajes: 77
Antigüedad: 13 años, 11 meses
Puntos: 0
Aprobechando el TOPIC total es de lo mismo

Yo tengo una duda sobre el mismo asuntito.
Pues yo ya hice un sistema lo tengo un 80% listo. Pero me doy cuenta que es muy inseguro.

Resulta que cuando uno trabaja con Sql Server 7 o en mi caso con Mysql, puedes hacer USUARIOS en el mismo motor. En mi caso hice un usuario Root que puede acceder a TODA la base de datos. Osea un Super Usuario.

Luego cuando alguien se loguea, va y habre la base de datos con un ODBC que está conectado a la base y que entra con el usuario ROOT osea ven TODA LA BASE.

Pero además en la base hay una tabla ACCESO y una tabla USUARIOS y TIPOS DE USUARIO los cuales se encargan de restringir el acceso. Es decir si en la aplicación tengo un suario Tipo TECNICO entonces solo podrá ver una opción del Menú, por ejemplo.

Por lo tanto el acceso lo controlo con la aplicación.

¿Cómo podría yo controlar el acceso con el MOTOR DE LA BASE?

Es decir crear varios tipos de usuario con Mysql y con diferentes tipos de acceso a las tablas, y luego controlar esos usuarios de MYSQL con la aplicación?.

Tengo pensado crear un usuario intermedio que solo lea las tablas de los tipos de usuario y usuario y acceso, para que cuando se loguee un usuario vaya a la tabla correspondiente, luego lea el tipo de usuario que es y luego cierre la base y la abra con el tipo de usuario que le corresponde. Osea abrir la base 2 veces por cada login. ¿Me estaré volviendo loco?.

Última edición por mauricio76; 25/10/2004 a las 15:37
  #12 (permalink)  
Antiguo 25/10/2004, 16:26
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Por mi parte sólo defino usuarios por "aplicación". Es decir .. una aplicación común a lo máximo sobre una BD puede crear registros, actualizarlos, borrar registros y poco más .. pero no puede tal vez ni crear tablas .. ni mucho menos crear usuarios para la BD.

Por ende .. defino un usuario de esas características de permisos y dejo el resto de "gerarquía" de permisos a la aplicación (a los usuarios de la aplicación) que es en definitiva la que "lanza" los scripts PHP que van a conectarse a la BD.

En resumen .. su tu aplicación "falla" (en seguridad) .. van a tener el control sobre esos N usuarios (hasta el que más permisos tenga al menos). Yo realmente no me complico en ese aspecto . .eso sí .. no uso un "root" sin contraseña para la aplicación de turno sino uno con los permisos justos a lo que haga mi aplicación.

Sólo algunas aplicaciones tipo "phpMyadmin" tendrán ese tipo de usuarios como "root" pero es que eso son "Administradores" de tu BD (GUI).

Un saludo,

Última edición por Cluster; 25/10/2004 a las 16:27
  #13 (permalink)  
Antiguo 25/10/2004, 18:49
 
Fecha de Ingreso: enero-2004
Mensajes: 77
Antigüedad: 13 años, 11 meses
Puntos: 0
Tienes toda la razón viejo. En realidad debiera usar un Usuario para las aplicaciones con restricción a leer, ingresar, modificar y eliminar sólo a las tablas del sistema y no a todas.

Muchas gracias, a veces uno tiene el problema tan cerca que no lo puede ver bien.
  #14 (permalink)  
Antiguo 25/10/2004, 23:41
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
impala:
Recomendado:
El autentificator de Cluster (que ya te recomendó él mismo)... lo mejor es que estátodo el código muy bien explicdo y es fácil de entender y de aplicar... además de que como es muy claro es fácilmente adaptable a tus necesidades específicas... dale una mirada.
http://php.cluster-web.com/autentificator

Saludos
  #15 (permalink)  
Antiguo 26/10/2004, 10:25
 
Fecha de Ingreso: septiembre-2004
Mensajes: 203
Antigüedad: 13 años, 2 meses
Puntos: 0
Estuve mirando el script de Cluster y parece muy bueno, o por lo menos, ideal para lo que necesito hacer. Pero hay una cosa que no entiendo y es lo de "nivel de acceso" ... de donde sale el valor de $_SESSION["usuario_nivel"] ? si alguien me lo podría explicar mejor ...
  #16 (permalink)  
Antiguo 26/10/2004, 11:36
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
impala ...

El nivel de acceso es un dato más que se guarda en la tabla de usuarios (BD) que gestiona las cuentas de usuarios de Autentificator. Se usa para otorgar cierta gerarquía en tu aplicaciones y permitir filtrar por ese valor para hacer determinadas taréas en tus aplicaciones (que "signifique" para tu aplicación ese "nivel" eso lo defines tu mismo en base a tus consideraciones .. podrías hasta omitir dicho nivel de acceso ni no lo requieres)

Un saludo,
  #17 (permalink)  
Antiguo 27/10/2004, 03:05
 
Fecha de Ingreso: septiembre-2004
Mensajes: 203
Antigüedad: 13 años, 2 meses
Puntos: 0
Muchas gracias a todos por las respuestas ! Al final estoy implementando "autenticator" y la verdad es que ahora que lo comprendí me va de maravillas !
  #18 (permalink)  
Antiguo 27/10/2004, 07:04
 
Fecha de Ingreso: septiembre-2004
Mensajes: 203
Antigüedad: 13 años, 2 meses
Puntos: 0
Ahora tengo una duda, el tema de la autenticación me va de maravillas, pero trabajo con marcos y quiero que cuando se desloguee vaya a parar a la página de logueo otra vez (esta no tiene marcos) ... cómo puedo hacerlo ya que se me abre en un marco u otro, pero el formato de los marcos me queda siempre ... fui claro ?
  #19 (permalink)  
Antiguo 27/10/2004, 08:29
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Investiga los scripts .. El script de "logout" termina la sesión que se inició y ahí queda .. pero si tu lo deseas puedes redireccionar hacia donde gustes con javascript o con un link usando el target que corresponda.

Un saludo,
  #20 (permalink)  
Antiguo 27/10/2004, 08:44
 
Fecha de Ingreso: septiembre-2004
Mensajes: 203
Antigüedad: 13 años, 2 meses
Puntos: 0
entiendo lo que decís perfectamente, pero ahi está el tema, no quiero usar target, lo que quiero es que no se vean mas marcos al desloguearse. O sea, que vaya directamente a una pagina de confirmación del deslogueo o a la misma que uso para loguearme.
  #21 (permalink)  
Antiguo 27/10/2004, 09:28
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Insisto .. eso ya no son temas de "PHP" (ni de mi script) .. sino de HTML y como haces un link indicando un taget tipo "_BLANC" o similar en lugar de un nombre de un frame tuyo o "_SELF" que indicaría "en este mismo frame" ..

Consulta en el foro de HTML.

Un saludo,
  #22 (permalink)  
Antiguo 27/10/2004, 09:33
 
Fecha de Ingreso: septiembre-2004
Mensajes: 203
Antigüedad: 13 años, 2 meses
Puntos: 0
ya está, lo hago usando la opción "_top" de target. Solucionado. Gracias a todos !
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 18:30.