Salve a tutti!

spero di riuscire a far capire di cosa ho bisogno: sto imparando ad utilizzare php in tempi un po' troppo brevi per i miei gusti (ho una scadenza per un progetto di laurea universitario) ed ora sto iniziando ad integrare le sessioni. Ho il mio progetto che sembra essere funzionale (speriamo) e nel quale è prevista una login iniziale. Dopo questa l'utente ha loggato può essere generico o amministratore grazie ad un campo temp (0 o 1) presente nel database nella tabella "utenti". Nelle varie pagine si verifica se l'utente è loggato e quindi se può accedere con qualcosa del tipo:

Codice PHP:
<?php 
include_once("../include/config.php"
include_once(
"../include/auth.lib.php");

list(
$status$user) = auth_get_status();

if(
$status == AUTH_LOGGED){
    
$msg 'Contenuto della pagina';

}else    
$msg 'Non hai i diritti per visualizzare la pagina';

?>
e fin qui credo sia tutto ok...

Ora credo che per portarmi dietro il tipo di permesso dell'utente devo utilizzare le sessioni. Allora mi sono letto la vostra bella guida (approfitto per i complimenti al sito!) ed ho creato il file db_session_class.php (e la rispettiva tabella my_session nel database) strutturato come segue:

Codice PHP:

<?php
require('config.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 le 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

?>
ora cosa dovrei fare per mantenere questo riferimento ai permessi nelle pagine?
my_session_start() in ogni pagina?
my_session_register() quando?
my_session_destroy() quando?
come recupero il permesso nella pagina e come lo controllo?
ed infine: se utilizzo questa procedura è comunque necessario il controllo iniziale per vedere se l'utente è loggato?

scusate lo sproloquio ma cerco di far capire qual'è il mio intoppo.

Ciao e grazie anticipatamente a chi potrà darmi una mano