Mantener Nombre Usuario

Tengo lista una base de datos de usuarios, formularios y todo lo importante.
No se si estas familiarizado con Facebook, pero hace una cosa que me gustaría conseguir.
- En el momento de Login, te ofrecen la posibilidad de "seguir Loggeado" (algo sencillo).
- Si entras sin elegir esa opción, cuando cierras el explorador y vuelves a abrirlo y entrar en Facebook.com, no estas loggeado pero SALE TU EMAIL escrito en su lugar (y la contraseña vacía, a la espera de introducirla).
Me parece que es muy interesante, ya que facilita la labor de Log In.
¿Sabrías hacer esto?

1 Respuesta

Respuesta
1
Esto se consigue mediante lo que se llaman cookies.
Si el usuario los tiene activados en su explorador, puedes almacenar datos en la cookie que pueden ser consultados por PHP.
Este sería el caso del correo electrónico por ejemplo que enviaste en un formulario una vez. En ese momento se almacena en una cookie y eso provoca que el explorador se lo 'apunte' para cuando se le pida ese dato en el futuro.
Por ejemplo, haces una página de login donde el usuario pone su nombre y su contraseña. Cuando se envía el formulario, la página PHP que lo procesa toma el nombre y lo guarda en una cookie (debe hacerse antes de escribir cosas en la pantalla porque va con las cabeceras) mediante:
<?php
setcookie("NombreDeLaCookie", "ElValorQueGuardas");
?>
Cuando se entre de nuevo en la primera página, podrás pedir la cookie con:
<?php
echo $_COOKIE["NombreDeLaCookie"];
?>
Y obtendrás el valor que se almacenó.
Por supuesto las cookies sólo funcionan cuando se entra en el mismo ordenador cada vez. Si te vas al ordenador de un locutorio verás que no 'se acuerda' de tu login porque no es tu ordenador habitual.
Hola, entiendo bien lo que dices, pero no me sale!
Mira:
Así lo muestro en el formulario de Login:
value= "<?php echo $_COOKIE["usuario"]; ?>"
Así lo almaceno en el login.php, donde se realiza el Login:
<?php
$email = $_POST['email'];
setcookie("usuario", $email);
?>
El index, donde se llama al formulario de Login, tiene un Session Start. No se si eso influye.
El tema es que hago login y cierro el explorador, pero cuando lo abro no me sale el nombre de usuario en el formulario de Login.
¿Qué puede ser?
Gracias
Si quieres que permanezca después de cerrar el explorador tendrás que darle un tiempo de expiración largo, por ejemplo dos días:
setcookie("usuario", $email, time()+60*60*48);   // Dos dias de duración
Recuerda también que setcookie debe realizarse cuando todavía no se han enviado las cabeceras. Si ejecutas un echo antes por ejemplo, te saldrá un warning advirtiendo que las cabeceras ya se enviaron y no se pudo guardar la cookie.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas