Bueno .. haz hecho un gran "mezcladito" de cosas ...
Si usas en tu aplicación los arrays superglobales: $_SESSION .. no deberías meter a "$HTTP_SESSION_VARS" (experimenta usando una de las dos alternativas)
Estos session_destroy() no tienen ningún fundamento:
session_destroy('PHPSESSID o id de sesion');
session_destroy($HTTP_SESSION_VARS['nombre']);
De hecho fjate que dice la documentación oficial al respecto:
Cita: session_destroy
(PHP 4 , PHP 5)
session_destroy -- Destroys all data registered to a session
Description
bool session_destroy ( void )
Ese "void" dice que la función no tiene parámetros ..
Prueba sólo esto:
Código PHP:
<?
session_start();
session_unset();
session_destroy();
?>
y observa que sucede. De todo lo que pusistes .. eso sólo y como mucho con:
$HTTP_SESSION_VARS = array(); (antes del session_unset()) es lo que realmente tiene alguna explicación lógica según la descripción de esas funciones.
Un saludo,