Foros del Web » Programando para Internet » PHP »

Autenticación NO HTTP??

Estas en el tema de Autenticación NO HTTP?? en el foro de PHP en Foros del Web. Hola todos!. Tengo una duda que no he podido resolver en varios días. Usando las ayudas sobre php de los foros, me he encontrado con ...
  #1 (permalink)  
Antiguo 21/09/2005, 00:03
Avatar de d3j4vu  
Fecha de Ingreso: julio-2005
Ubicación: Ñuñoa en Santiago de Chile
Mensajes: 14
Antigüedad: 12 años, 4 meses
Puntos: 0
Autenticación NO HTTP??

Hola todos!.

Tengo una duda que no he podido resolver en varios días. Usando las ayudas sobre php de los foros, me he encontrado con la autenticación http...pero lo que deseo es poder realizar autenticación via un simple formulario web en un documento php, donde salen dos campos, uno para el username y otro (obviamente) para la contraseña.

Lo otro que me complica es lo de la tabla users en la base de datos "llamada" mysql dentro del motor MySQL. Yo se que esa tabla guarda informacion sobre el o los usuarios y los permisos que MySQL otorga para hacer uso de las bases de datos gestionadas por el. Pero, el usuario con el que deseo hacer autenticación NO HTTP, debe estar en esa tabla "users" de la bd "mysql"???


O no tiene nada que ver lo uno con lo otro???

PD: gracias de antemano, la verdad no espero código (prefiero escribirlo yo mismo ) sólo si algun alma caritativa me puede aclarar mi par de dudas...

Saludos a todos desde chile.
  #2 (permalink)  
Antiguo 21/09/2005, 01:16
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 12 años, 10 meses
Puntos: 10
Pregunta

Buenas,
la tabla users q hay en mysql es solo para mysql, es decir, son los permisos q se otorgan a los usuarios q puedan tener acceso a esa BD.
este seria el usuario de mysql.
Código PHP:
$sql_host="hostBD";  // Host, nombre del servidor o IP del servidor Mysql.
$sql_usuario="usuario";  // Usuario de Mysql
$sql_pass="password"//password de tu usuario mysql
$p_hook mysql_connect($sql_host,$sql_usuario,$sql_pass) or die ("Error en la connexión: host/user/pass incorrecto"); 
en cambio la tabla q debes usar para identificar a tus usuarios web no es la misma.Tienes q crear tu la tabla a tu gusto dentro de tu BD.

Espero haberme explicado bien.

saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #3 (permalink)  
Antiguo 21/09/2005, 15:54
Avatar de d3j4vu  
Fecha de Ingreso: julio-2005
Ubicación: Ñuñoa en Santiago de Chile
Mensajes: 14
Antigüedad: 12 años, 4 meses
Puntos: 0
Hola sergi_climent, antes que todo muchas gracias por tu respuesta.

Dejame ver si entiendo lo que dices: al crear una base de datos para un sitio que esté desarrollando, digamos una bd llamada "ejemplo", creo una tabla usuarios, users, etc. y creo registros de usuarios normalmente...

Pero, la autenticación si no es HTTP es asi mas simple, es decir, mandando las variables por los arrays super globales?? envio un username y una password por POST o GET (get no creo cierto??), ejecuto una query a la bd creada, comparo los valores enviados por formulario y si ambos coinciden entonces la autenticacion es exitosa??

Lo que pasa es que me cuesta creer que no haya mas truco en el cuento, que sea asi de simple, mas que nada porque me resulta inseguro el pensar que las variables correspondientes a un username y una password se puedan (o deban por una cosa de seguridad) enviar asi no mas por la URL o usando POST.

Gracias de antemano y saludos de este esforzado autodidacta.
  #4 (permalink)  
Antiguo 21/09/2005, 16:05
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
No tiene nada que ver los "user's" que tu ves de Mysql .. con los que tu o tus aplicaciones puedan gestionar.

A "Mysql" desde PHP tus aplicaciones se conectan usando un único usuario (con los permisos de acciones sobre las tablas y BD que ahí indiques). Muchas veces se usa un sólo usuario para toda aplicación que corra en tu servidor .. pero por seguridad deberías usar uno por aplicación completamente distinta que uses (ejemplo: uno para un foro .. otro para un CMS .. etc).

Como te comenté .. los usuarios que ahí en Mysql se definen son de acceso a Mysql .. nada que ver con los que una aplicación tuya pueda o tenga que gestionar.

Sobre el tema de "autentificación" .. hay dos procesos en este tema:
1) Validación usuario (autentificación) contra tu Base de datos o sistema que almacene esa información (par al menos de "usuario vs Contraseña"
2) Seguimiento del usuario en todas las páginas que use de tu sistema.

El punto 1 ... lo resuelves con una simple tabla en tu BD que guarde un par de campos: usuario y contraseña (+ Identificativo común ID).

El "seguimiento" del usuario lo puedes realizar de forma segura con sesiones (o cookies). De esta forma, tu usuario al hacer su "login" lo que hace en primer lugar es validar si existe y es correcto su usuario/contraseña contra tu BD (bajo una consulta SQL) .. seguidamente creas unas variables de sesión o cookies para "dejar" constancia que efectivamente tu usuario "pasó" por la validación y fué correcta.
En cada página de tu sistio (script) validas la existencia de esa variable(s) de sesión (o cookies) creadas (ya no se consulta más a tu BD por esos datos). Si entras directo a una de tus páginas "autentificadas" .. no existiran esas variables de sesión por ende tu validación hará que rechazes al usuario.

Todo esto lo puedes ver en la práctica en este script:

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

En las FAQ's de este foro puedes ver información sobre como funcionan las sesiones (que són).

Un saludo,


2)
  #5 (permalink)  
Antiguo 21/09/2005, 16:34
Avatar de d3j4vu  
Fecha de Ingreso: julio-2005
Ubicación: Ñuñoa en Santiago de Chile
Mensajes: 14
Antigüedad: 12 años, 4 meses
Puntos: 0
Muchisimas gracias cluster tu script me ha servido bastante para entender mejor cómo funciona esto.

Muchas gracias por tu ayuda y saludos!
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 12:40.