Foros del Web » Programando para Internet » PHP »

Inicio de sesión con PHP

Estas en el tema de Inicio de sesión con PHP en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 18/03/2014, 04:09
 
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
  #2 (permalink)  
Antiguo 18/03/2014, 05:14
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Inicio de sesión con PHP

No se que manual te has mirado yo te recomiendo el oficial

http://www.php.net/manual/es/book.session.php

si las sessiones expiran por si solas transcurrido un tiempo....
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 18/03/2014, 06:20
 
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
Respuesta: Inicio de sesión con PHP

El manual es un libro que se llama "La biblia de PHP 5", es solamente que no decía nada al respecto, por eso consulto. Gracias por la respuesta.

En cuanto a la utilidad de la función "unset($_SESSION["name"]);" ¿por qué hay que usarlo si "sessión_destroy();" elimina todo el contenido de la variable?.

Un saludo.
__________________
¿Por qué Anónimo?, porque como está el mundo no podemos considerarnos humanos...
  #4 (permalink)  
Antiguo 18/03/2014, 06:34
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Inicio de sesión con PHP

No creo que sea necesario.....pero no he leido ese manual.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #5 (permalink)  
Antiguo 18/03/2014, 06:45
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años, 1 mes
Puntos: 67
Respuesta: Inicio de sesión con PHP

El unset destrulle una variable en espicifica y en tu caso solo destruyes $_SESSION["name"], pero si hay por ejemplo $_SESSION["admin"] no la destruirá. Para destruir todas las que aiga se utiliza solo session_destroy() y si php las destrulle en un tiempo de inactividad.

Etiquetas: html, inicio, mysql, sesión, variable
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 02:40.