Foros del Web » Programando para Internet » PHP »

Mantener a los USUARIOS

Estas en el tema de Mantener a los USUARIOS en el foro de PHP en Foros del Web. Hola, Quisiera saber cómo conseguir un par de cosas en mi sistema de usuarios: - Mantener al usuario conectado desde su PC, aunque cierre el ...
  #1 (permalink)  
Antiguo 25/12/2008, 05:42
 
Fecha de Ingreso: noviembre-2008
Mensajes: 259
Antigüedad: 15 años, 5 meses
Puntos: 1
Mantener a los USUARIOS

Hola,

Quisiera saber cómo conseguir un par de cosas en mi sistema de usuarios:

- Mantener al usuario conectado desde su PC, aunque cierre el explorador

- Conseguir lo que hace facebook: Aunque diga que no me mantenga conectado en mi PC, la siguiente vez que entre en su página principal:
VEO MI EMAIL ESCRITO y solamente debo introducir mi PASSWORD.

No sé si es complicado, pero no encuentro muchas referencias y aquí sois los mejores!

Gracias!
  #2 (permalink)  
Antiguo 25/12/2008, 07:55
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Respuesta: Mantener a los USUARIOS

Buenas,

Para mantener el usuario activo, podrias cambiar el tiempo del a cookie por ejemplo.
Ésto lo podrias hacer desde el php.ini o utilizando setcookie por ejemplo.
(Por el foro se ha hablado)

Y para lo del email ... se me occure que una vez consigas mantener la session del user, muestras su email y una caja para que introduzca solo su pass.

Saludos,
  #3 (permalink)  
Antiguo 25/12/2008, 08:04
Avatar de f0vela  
Fecha de Ingreso: diciembre-2008
Ubicación: Guatemala
Mensajes: 48
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Mantener a los USUARIOS

Asi como comenta DeFFeR esto se consigue manejando cookies.

Puedes guardar la session del usuario en la cookie y luego cuando reingrese a tu sitio validar la session en tu DB contra la session de la cookie y si coincide lo autenticas automaticamente.

Si no quiere ser recordado, puedes encriptar su email en la cookie y cuando entre denuevo a tu sitio buscar la cookie, desencriptarla y escribir el correo en la caja de usuario.
  #4 (permalink)  
Antiguo 25/12/2008, 08:40
 
Fecha de Ingreso: noviembre-2008
Mensajes: 259
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: Mantener a los USUARIOS

Madre mía, esto suena muy bien pero no tengo ni idea de cómo codificarlo.

¿Alguna pista? Algún Tutorial de ayuda?

Gracias
  #5 (permalink)  
Antiguo 25/12/2008, 18:28
 
Fecha de Ingreso: diciembre-2008
Mensajes: 70
Antigüedad: 15 años, 4 meses
Puntos: 4
Respuesta: Mantener a los USUARIOS

Hola samyb8.

Basicamente lo que tienes que hacer es lo siguiente:
En tu form colocar dos casillas checkbox:
Código PHP:
<form action="procesar.php" method="post">
Usuario: <input type="text" name="usuario" value="<?php echo $_COOKIE['usuario']; ?>"><br>
Pass: <input type="contrasena" name="contra"><br>
Recordar datos:<input type="checkbox" name="recordarDatos"><br>
Recordar sesion: <input type="checkbox" name="recordarSesion"><br>
<input name="login" type="hidden" value="1">
<input type="submit" value="Enviar">
Despues de hacer esto, tienes que crear una clase en la pagina procesar.php para que al dar clic en enviar, (por medio del campo hidden login), el constructor que se ejecuta cada vez que se llama la clase por medio del objeto, detecte si el usuario esta loggeado o no y al mismo tiempo llene las variables de sesion y cookies, es un poco largo y complicado asi que te dejo los fundamentos de la clase, el objeto, el constructor y la funcion login.
Código PHP:
<?php
/*Creamos la clase*/
class Proceso
{
/*Creamos el constructor*/
function Proceso(){
if(isset(
$_POST['login'])){
$this->logg();
}

$this->loggeado $this->checarLog();
//Termina la funcion
}
/*Creamos la funcion que se va a encargar de decir si estan seteadas las checkbox para setear cookies y retornar true si el usuario esta loggeado todavia y false si no lo esta*/
function checarLog(){
//REvisamos si la variable de sesion de loggeado esta seteada
if(isset($_SESSION['esta_loggeado'])){
return 
true;
}
elseif(isset(
$_COOKIE['recordarSesion'])){
return 
true;
}
else{
return 
false;
}
//Termina la funcion
}

/*Creamos la funcion de donde vamos a setear si los datos del usuario son correctos para loggearlo*/
function logg(){
if(
/*Aqui realiza toda la comprobacion necesaria entre la base de datos y los posts*/){
$_SESSION['esta_loggeado'] = true;
/*Si el usuario decidio recordar sesion o datos seteamos la cookie*/
if(isset($_POST['recordarDatos'])){
setcookie("usuario",$_POST['usuario']);
}
if(isset(
$_POST['recordarSesion'])){
setcookie("recordarSesion",true);
}
}
else{
$_SESSION['esta_loggeado'] = false;
}
//Termina la funcion
}
//Termina la clase
}

/*Creamos el objeto*/
$procesar = new Proceso;
Disculpa si esta algo mal en el script pero fue un rapidin.
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 00:11.