Ho ripreso in locale e nel tuo caso vedo che dovresti mettere le virgolette al setcookie:
setcookie('PHPSESSID', $PHPSESSID, time() - 3600);
il resto e' solo conseguenza del NOTICE.
Poi dovresti mettere subito dopo session_start() la parte del LOGOUT.
E' inutile processare righe se devi fare il logout...
codice:
session_start(); //si inizia o continua la sessione
//logout
if (isset($_GET['logout']) AND $_GET['logout'] == 1) {
$_SESSION = array(); // desetta tutte le variabili di sessione
setcookie('PHPSESSID', $PHPSESSID, time() - 3600); // azzero il cookie sul browser
session_destroy(); //distrugge la sessione
header("Location: $redirect"); //si ricarica la pagina di login
exit; //si termina lo script in modo da ritornare alla schermata di login
}
E verifica anche che $_GET[logout] contenga 1 ( == 1).
Sto guardando anche la parte dello script per il passaggio dell'id di sessione via URL, c'e' qualcosa che non mi convince ma non l'ho ancora individuato bene. In pratica non cambieresti mai il session_id.... ma forse no.