Ciao,
allora, innazitutto il define col nome della sessione non è una cosa obbligatoria, piuttosto è una mia convenzione ( ma credo che anche altri scrivano il loro codice allo stesso modo ).
Permettimi di fare un piccolo passo indietro.
Nella tua applicazione non devono mancare 2 files che saranno inclusi in ogni singola pagina del tuo progetto ( che sia sito internet, gestionale ecc.. ):
- file del setup ( io lo chiamo setup.php )
- file che viene caricato subito dopo il setup ( io lo chiamo application_top.php, ho preso spunto da oscommerce )
Nel file di setup crei una costante a cui dai il nome della sessione che varrà per quel progetto:
Codice PHP:
define(SESSIONE,'miaSessione' )
Inoltre, il file di setup ti servirà per inizializzare le altre costanti, come ad esempio username, host e pass del db ( per questo dev'essere incluso sempre ).
Dare il nome della sessione differenziato ti da la possibilità di installare 2 o più volte lo stesso progetto sullo stesso server. In caso contrario, autenticandoti in uno solo saresti autenticato da tutte le parti.
Nel file application_top.php ( nome da esempio ) puoi inizializzare quelle variabili che ti servonoi a livello globale, ad esempio
Codice PHP:
$userId = isset($_SESSION[SESSIONE]['id']) ? (int)$_SESSION[SESSIONE]['id'] : 0;
Il tuo file index.php sarà qualcosa del genere:
Codice PHP:
<?php
require_once('./includes/setup.php');
require_once('./includes/application_top.php'); // ho creato una dir includes
?>
Su application_top.php inoltre inizializzi la sessione e registri la costante
Codice PHP:
session_start();
if(!session_is_registered(SESSIONE){
session_register(SESSIONE);
}
Inoltre potrai inizializzare alcuni oggetti che ti serviranno a livello globale ( ad esempio la gestione del database ).
La sessione inoltre potrai anche salvarla sul database se preferisci ( con session_set_save_handler )
Il controllo va bene come l'hai fatto.
Per essere sicuro fallo direttamente sulla sessione:
Codice PHP:
if(isset($_SESSION[SESSIONE]['id']) && (int)$_SESSION[SESSIONE]['id'] > 0){
// contenuto protetto
}else{
// login
}
Non ti rimane altro che provare per vedere se le cose funzionano o meno 
Ciao