Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/03/2014, 04:09
Anonimo12
 
Fecha de Ingreso: abril-2009
Ubicación: En foros del web, normalmente en Web general, HTML y CSS.
Mensajes: 258
Antigüedad: 15 años
Puntos: 3
Inicio de sesión con PHP

Buenos días:

He programado un sistema de login con php y mysql para una web que estoy diseñando desde cero. Funciona perfectamente pero me da la impresión de que no cierra todas las sesiones como debería.

Esto es: Si un usuario inicia sesión, se crea una variable de sesión y le da acceso a la zona restringida. En esta zona tiene el botón "Cerrar sesión" que llama al siguiente código php:

Código PHP:
<?php
  session_start
();
  unset(
$_SESSION["name"]);
  
session_destroy();
  
header("Location: index.html");
  exit();
?>
Todo correcto, funciona sin ningún problema (o eso parece a primera vista, porque cierra la sesión y dirige al usuario a la página principal "index.php"; si intento acceder a la zona restringida no me lo permite).

Ahora bien, mientras programaba el código inicié sesión con algunas cuentas, y por aquel entonces todavía no había implementado la opción de cerrar sesión. ¿Esas sesiones siguen abiertas?, porque supongo que php no borra las variables de sesión automáticamente cuando pasa un periodo de tiempo llamando por si solo a "session_destroy()" (¿o si?) y por tanto siguen existiendo.

¿Y si el usuario cierra el navegador sin darle al botón "cerrar sesión" (es decir, sin llamar al script correspondiente)?, luego le obliga a logearse ¿pero la variable sesión ha sido destruida?.

Otra cuestión:

Si "sessión_destroy();" elimina todo el contenido de la variable de sesión y la destruye, ¿por qué hay que llamar a "unset($_SESSION["name"]);"? (aparecía en el manual que he seguido).

Esto es más nada conocer el funcionamiento de $_SESSION[...]. Un cordial saludo.
__________________
¿Por qué Anónimo?, porque como está el mundo no podemos considerarnos humanos...

Última edición por Anonimo12; 18/03/2014 a las 04:43