Foros del Web » Programando para Internet » PHP »

Verificación de usuarios.

Estas en el tema de Verificación de usuarios. en el foro de PHP en Foros del Web. Hola, mando este mensaje por que me ha surgido una duda. Hace ya tiempo he hecho webs con usuarios guardados en una base de datos ...
  #1 (permalink)  
Antiguo 24/02/2015, 15:36
Avatar de veniwarez  
Fecha de Ingreso: julio-2010
Mensajes: 110
Antigüedad: 13 años, 9 meses
Puntos: 3
Verificación de usuarios.

Hola, mando este mensaje por que me ha surgido una duda.
Hace ya tiempo he hecho webs con usuarios guardados en una base de datos y siempre que accedía me guardaba una cookie con mi nombre de usuario y otra con un identificador. Así pues cuando ese usuario quería por ejemplo mandar un mensaje primero comprovaba que el usuario y el id coincidiesen con los de la base de datos.

Mi problema ahora es que no se si esta es una forma valida y correcta de hacer esto, y me gustaria preguntar cómo debería hacerlo.
O sea mi duda es como se que esa persona es un usuario de mi base de datos.

Muchas gracias.
Atte. Veniwarez.
  #2 (permalink)  
Antiguo 25/02/2015, 08:34
 
Fecha de Ingreso: enero-2007
Mensajes: 285
Antigüedad: 17 años, 3 meses
Puntos: 21
Respuesta: Verificación de usuarios.

hola.. no se si te entiendo bien... recien me levanto.. pero... segun entiendo.. vos queres saber como es que el usuario que ingreso.. esta entyu base de datos.. y mantener esa validacion mientras que el este en la web..

si es asi. debes usar sessiones.

lo primero.. y claro esta es formulario de login...

2) validacion por los campos de db si el user y el pass existen

3) si existen arrancamos con la session


de esta manera.. verificamos i existe una session.. y si no existe la creamos, esto tenes que ponerlo al principio de cada archivo en el que neceistes manejar la session.
Código:
if (!isset($_SESSION)) {
  session_start();
}
luego.. establecemos las variables de session que deseamos.. como por ejemplo.. nombre de usuario, email, id, etc. estas variables estaran disponibles mientras dure la session.. osea.. hasta que cierres el navegador.. o voluntariamente las elimines.
Código:
//asignamos valor a una variable llamada nombre
$_SESSION['nombre'] = $elNombreQueBajamosDelLaBaseDeDatos;

//imprimimos la variable nombre
echo $_SESSION['nombre'];

//eliminamos la variable
$_SESSION['nombre']=null;
unset($_SESSION['nombre']);
no se si era esto lo que buscabas.. pero bueno de ultima.. queda para otro .. saludos.. espero te sirva
  #3 (permalink)  
Antiguo 27/02/2015, 04:54
Avatar de veniwarez  
Fecha de Ingreso: julio-2010
Mensajes: 110
Antigüedad: 13 años, 9 meses
Puntos: 3
Respuesta: Verificación de usuarios.

Hola, muchas gracias creo que era exactamente esto lo que buscaba.
O sea que es lo siguiente.

1/ LogIn. Si el login es correcto
2/ session_start(); Y a la sesión le añadimos diferentes campos que queramos guardar como Nombre, Mail, y Rol (Admin/Usuario/....) > $_SESSION['nombre'] = "Nombre"; $_SESSION['rol']=1;....

3/La sesión finaliza al cerrar navegador o por lo contrario si nosotros queremos eliminarlo haciendo lo siguiente.

$_SESSION['nombre']=null;
unset($_SESSION['nombre']);
$_SESSION['rol']=null;
unset($_SESSION['rol']);

De esta manera la Sesión ya no existe.
Solo tengo dos dudas. 1/ Hay alguna manera de que la sesión no expire al cerrar el navegador? Algo así como las cookies que puedes poner su duración?
2/ Esta forma es segura, no? O sea por que como yo lo hacia antes si alguien creaba dos cookies con el usuario y el identificador del usuario, esa persona tenia la opción de "suplantar" al usuario real. Con esto no es posible, no?


PD: He estado mirando y veo que SESSION guarda la información en el servidor y es posible que accedan a ella, hay solución para eso?
Tambien veo que SESSION tiene una duración corta, en esta web los usuarios deberian poder estar validados durante bastante tiempo ya que lo necesitarían para manejar diferentes asuntos.
Muchas gracias, la verdad me sirve mucho, y es lo que buscaba solo me quedaron esas dos dudas.

Atte Veniwarez

Última edición por veniwarez; 27/02/2015 a las 05:01
  #4 (permalink)  
Antiguo 27/02/2015, 09:11
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 10 meses
Puntos: 379
Respuesta: Verificación de usuarios.

Mejor reutiliza https://github.com/auraphp/Aura.Auth
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #5 (permalink)  
Antiguo 27/02/2015, 09:26
Avatar de veniwarez  
Fecha de Ingreso: julio-2010
Mensajes: 110
Antigüedad: 13 años, 9 meses
Puntos: 3
Respuesta: Verificación de usuarios.

Cita:
Iniciado por hhs Ver Mensaje
Hola, estoy mirando y la verdad entiendo poco como usar esto
  #6 (permalink)  
Antiguo 27/02/2015, 09:34
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 10 meses
Puntos: 379
Respuesta: Verificación de usuarios.

Me encontré una introducción: http://securepasswords.info/aura-for-php/ y animo el esfuerzo extra vale la pena te va evitar estar haciendo lo mismo.
El articulo es sobre la versión beta así que pueden existir cambios con la versión definitiva pero te va a ayudar a comprender la idea general
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #7 (permalink)  
Antiguo 27/02/2015, 10:04
 
Fecha de Ingreso: enero-2007
Mensajes: 285
Antigüedad: 17 años, 3 meses
Puntos: 21
Respuesta: Verificación de usuarios.

tambien podes.. reutilizar tu propio codigo.. hacetelo bien.. y creas tu propia libreria.

y tambien esta bueno hacerlo para entenderlo.

para lo que vos queres tenes que usar cookies...

Código:
<?php
//crear una cookie
setcookie('nombreDeLaCookie', 'valorDelaCookie', time() + 3600);//el ultimo parametro es el cuando va a caducar, esta caducara en una hora (osea... el time actual + 3600 segundos)


//leer la cookie
if (isset($_COOKIE['nombreDeLaCookie'])){
    echo 'Valor de la Cookie '. $_COOKIE['valorDelaCookie'];
}else{
    echo 'No hay Cookies';
}

//para borrarla
setCookie('nombreDeLaCookie', '', time() - 1000);

?>
por ejemplo.. vos queres.. hacer el login con el clasico check que dice.. mantenerle logueado o algo asi.. entonces si el usuario.. lo marco.. entonces creas la cookie.. con el tiempo que quieras que caduque.. por ejemplo una semana (time()+604800).. entonces.. para la proxima vez que entre.. verificas si esta tu cookie.. y si esta en vez de mostrarle el formulario de login lo redirigis hacia.. el logueado.

claro que el clienbte puede tenerlas dehabilitadas.. por lo cual no podes dejar cosas que seaan primordiales para el funcionamiento de tu sitio.. cosa de que si no estan el sitio funcione normalmente.. en este caso.. siempre vera el form de login.

Etiquetas: usuarios
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 16:30.