Ah, claro, porque en el logout estás borrando todo lo que dentro de $_SESSION. Por ejemplo, al login:
$_SESSION['nick'] = 'Mi Usuario'; // Por ejemplo
$_SESSION['logueado'] = true;
print_r( $_SESSION );
/* Suponiendo que no hay más variables definidas en $_SESSION, el resultado sería:
array( 'nick' => 'Mi Usuario', 'logueado' => true );
*/
Por otro lado, después del logout:
session_unset();
session_destroy();
print_r( $_SESSION );
/* Mostraría: array() */
Siempre debes asegurarte de dos cosas:
1.- Que la variable exista. Para eso se usa isset( $variable ).
2.- Que el contenido no este vacío y cumpla con lo que esperas. Revisar que cumpla con lo que esperas que sea el contenido de la variable es complejo, pues depende de lo que quieres. Por otro lado, el que no este vacío es fácil:
if( !empty( $variable ) )
if( $variable ) // En PHP, similar a C, cualquier variable que contenga algo evaluará como true. Si no esta definida en ningún lado, aparecerá la alerta que mencionas
if( $variable != '' ) // en este caso dependerá del tipo de variable: $variable == número, $variable == string, etc.
Los ejemplos anteriores dependerán del punto 1, pues si la variable no existe, no tiene sentido procesarla. De cualquier forma, siempre que la variable exista, debes procesarla, o sea, asegurarte de que el contenido sea lo que esperas y no otra cosa, pues podrían hackear tu sitio (ningún sitio es completamente seguro, pero para qué hacerles la tarea fácil, no?). Esto último es especialmente cierto cuando se involucra el ingreso de contenido por parte del usuario y la lectura/escritura de datos en una base de datos, pues podrían inyectar código SQL como: $_POST['nick'] = 'DELETE * FROM usuario'; ($_POST['nick'] es el nombre del input en el formulario de login).
En conclusión: el error implica que la variable no existe en ningún lugar, por ende, debes usar isset( $variable ) para asegurarte de que exista.