¿Cómo eliminar una sesión de PHP?

Es posible que no elimine correctamente las sesiones de PHP cuando el usuario cierra la sesión. Me he dado cuenta de que si me desconecto y vuelvo a iniciar sesión sin cerrar el navegador, la identificación de la sesión no cambia, pero si la cierro, cierre la ventana del navegador, abra una nueva e inicie sesión, la identificación de la sesión será diferente . ¿Debo hacer algo diferente o es este comportamiento normal? He estado usando el mismo proceso durante tres años, pero algo sucedió recientemente que me hizo pensar que tal vez tengo que hacer algo diferente.

Esto es lo que básicamente hago cuando alguien hace clic en Cerrar sesión.

 

Si sientes la necesidad de forzar una nueva identificación http://pl.php.net/manual/en/function.session-regenerate-id.php

Y a tu pregunta, del manual:

session_destroy () destruye todos los datos asociados con la sesión actual. No desarma ninguna de las variables globales asociadas con la sesión, ni desarma la cookie de sesión. Para volver a utilizar las variables de sesión, se debe invocar session_start ().

Para eliminar la sesión por completo, como para desconectar al usuario, la identificación de la sesión también debe estar desactivada. Si se usa una cookie para propagar la identificación de la sesión (comportamiento predeterminado), entonces la cookie de sesión debe ser eliminada. setcookie () se puede usar para eso.

Tu sesión está siendo destruida.

PHP solo generará una identificación de sesión si el navegador no especifica una. Mientras la sesión haya sido eliminada, no hay problemas con esto.

¿Qué pasa con el masivo de salvar y destruir? Solo session_start y configura tus variables. No es necesario destruirlos, ¡entonces reinícialos!

Su “problema” con el navegador es que cuando cierra la ventana de su navegador, su navegador está eliminando la cookie que PHP le envía para que conozca la ID de la sesión. Esta es una opción del navegador y no se puede cambiar en el lado del servidor (a menos que lo explote). Puede evitarse usando algunos métodos, pero esa no es probablemente la mejor opción.