io uso questo metodo:

nel config.inc.php ho questa stringa:

Codice PHP:
if (!isset($_SESSION['username'])) {
$loggato 0;
} else {
$loggato 1; } 
in ogni pagina includo config.inc.php e poi faccio questo controllo:
Codice PHP:
require("config.php");
if (
$loggato == 0) {
header("Location: login.php?pagina=".$_SERVER['PHP_SELF']); die();

anche a me dava quel problema di non mantenere le sessioni, ho risolto sbloccando i cookies in internet explorer: Strumenti -> Opzioni internet -> Privacy -> Abbassa la barra al minimo.