Nell'ultimo codice c'è un errore nella definizione delle condizioni.
l'if così come lo avevi scritto risulta sempre vero.

utilizzi una costante KEY è definita?


Codice PHP:
/*sicuro che KEY è definita?*/
if(!defined('KEY')){
exit(
'costante nn definita... forse manca un include?');
}

if( 
      !isset(
$_SESSION['login_done']) || 
      ( isset(
$_SESSION['login_done']) && $_SESSION['login_done']!= KEY )
){
    unset(
$_SESSION['login_done']);
    unset(
$_SESSION['username_logged']);
    
    
header("Location: login.php");
    exit;