Per le sessioni alternative ho questi semplici 4 files che sono poi gli stessi suggeriti nella guida.

Il file db.inc.php con i parametri di configurazione:
codice:
<?php
$db_host = "sql.xxx.x";
$db_user = "xxxx";
$db_password = "yyyy";
$db_name = "xxxx";
$session_time = 0; // durata del cookie
$session_gc_time = 1800; // tempo per l'esecuzione della garbage collection
?>
Il dile db_session_class.php:
codice:
<?php
require('db.inc.php');
class my_session {

   var $my_session_id; // l'id di sessione
   var $session_time; // la durata della sessione
   var $session_gc_time; // il tempo per la garbage collection

   //il costruttore della classe, inizializza le variabili
   function my_session($session_time, $session_gc_time) {
      $this->my_session_id = (!isset($_COOKIE['my_session_id']))
          ? md5(uniqid(microtime()))
              : $_COOKIE['my_session_id'];
      $this->session_time = $session_time;
      $this->session_gc_time = $session_gc_time;
   }

   // avvia o aggiorna la sessione
   function my_session_start() {
      $cookie_expire = ($this->session_time > 0) ? (time() + $this->session_time) : 0;
      if(!isset($_COOKIE['my_session_id'])) {
         setcookie('my_session_id', $this->my_session_id, $cookie_expire);
         mysql_query("INSERT INTO my_session VALUES('" . $this->my_session_id . "', '', " . time() . ")");
      } else {
         if($this->session_time > 0)
            setcookie('my_session_id', $this->my_session_id, $cookie_expire);
      }
   }

   /*   registra la variabili di sessione
      specificata nel database */
   function my_session_register($name, $value) {
      $_MY_SESSION = array();
      $session_query = mysql_query("SELECT session_vars FROM my_session
      WHERE sessid = '{$this->my_session_id}'");
      if(mysql_num_rows($session_query) > 0) {
         $result = mysql_fetch_array($session_query);
         $_MY_SESSION = unserialize($result['session_vars']);
         $_MY_SESSION[$name] = $value;
         mysql_query("UPDATE my_session SET session_vars = '" . serialize($_MY_SESSION) . "'
         WHERE sessid = '{$this->my_session_id}'");
      } else {
         $_MY_SESSION[$name] = $value;
         mysql_query("UPDATE my_session SET session_vars = '" . serialize($_MY_SESSION) . "'
         WHERE sessid = '{$this->my_session_id}'");
      }
   }

   /*   legge e restituisce le variabili di sessione
      (o la singola variabile specificata */
   function my_session_read($key = '') {
      $session_query = mysql_query("SELECT session_vars FROM my_session
      WHERE sessid = '{$this->my_session_id}'");
      if(mysql_num_rows($session_query) > 0) {
         $result = mysql_fetch_array($session_query);
         $session_vars = unserialize($result['session_vars']);
         return (isset($key) && $key) ? $session_vars[$key] : $session_vars;
      }
   }

   /*   distrugge la sessione, rimuovendo i relativi
      dati (non cancella il cookie) */
   function my_session_destroy() {
      mysql_query("UPDATE my_session SET session_vars = ''
      WHERE sessid = '{$this->my_session_id}'");
   }
   // procedura di garbage collection
   function my_session_gc() {
      mysql_query("DELETE FROM my_session
      WHERE session_date < " . (time() - $this->session_gc_time));
   }

} // end class

?>

Il file start_session.php:
codice:
<?php

// inclusione del file che contiene la classe
require('db_session_class.php');

// connessione a MySql
mysql_connect($db_host, $db_user, $db_password);

// selezione del Database
mysql_select_db($db_name);

// Istanziamo l'oggetto
$my_session = new my_session($session_time, $session_gc_time);

// Avviamo la sessione inviando il cookie al client
$my_session->my_session_start();

// Richiamiamo la procedura di garbage collection
$my_session->my_session_gc();

// Registriamo tre variabili di prova
$my_session->my_session_register('nick', 'nick');
//$my_session->my_session_register('nome 2', 'valore 2');
//$my_session->my_session_register('nome 3', 'valore 3');
//ho commentato per farne passare solo una

// Chiusura connessione
mysql_close();

?>
E il file test_session.php
codice:
<?php

// inclusione del file che contiene la classe
require('db_session_class.php');

// connessione a MySql
mysql_connect($db_host, $db_user, $db_password);

// selezione del Database
mysql_select_db($db_name);

// Istanziamo l'oggetto
$my_session = new my_session($session_time, $session_gc_time);

// Aggiorniamo, se necessario, la sessione "allungando la vita" del cookie
$my_session->my_session_start();

// Inizializziamo l'array che conterrà i dati della sessione
$_MY_SESSION_VARS = array();

/* Richiamiamo il metodo che ci restituirà le variabili di sessione, e memorizziamo
le stesse nell'array $_MY_SESSION_VARS; in alternativa avremmo potuto ottenere il
valore di una sola variabile, specificandone il nome come argomento del metodo */
$_MY_SESSION_VARS = $my_session->my_session_read();

/* In questo semplice esempio ci limitiamo a stampare a video,
formattandole, tutte le variabili di sessione registrate,
ovviamente possiamo farne l'utilizzo desiderato */
echo "<pre>\n";
print_r($_MY_SESSION_VARS);
echo "</pre>\n";

// Chiusura connessione
mysql_close();

?>

In localhost funziona tutto perfettamente.
In remoto cambia solo il file db.inc.php relativamente ai parametri di connessione al database. E se provo a lanciare start.session.php mi ritorna questo messaggio di errore:
Warning: Cannot modify header information - headers already sent by (output started at /home/mhd-01/www.xxxx.x/htdocs/db_session_class.php:77) in /home/mhd-01/www.xxxx.x/htdocs/db_session_class.php on line 22


Cosa c'è che non va? Grazie