Allora, stavo lavorando per postare:

Non posso postare il link perché il server è interno.

La pagina handleuser.php include un file "lib.inc.php"

Codice PHP:
<?php
require($_SERVER['DOCUMENT_ROOT']."/utility/PhpStdLibrary/class.DBSession.php");
require(
$_SERVER['DOCUMENT_ROOT']."/utility/PhpStdLibrary/class.SessionHandler.php");
require(
$_SERVER['DOCUMENT_ROOT']."/utility/PhpStdLibrary/class.DBHandler.php");
require (
$_SERVER['DOCUMENT_ROOT']."/utility/PhpStdLibrary/class.DataValidator.php");
require (
$_SERVER['DOCUMENT_ROOT']."/utility/PhpStdLibrary/class.SimpleXHTMLSanitizer.php");
require (
$_SERVER['DOCUMENT_ROOT']."/utility/PhpStdLibrary/class.UserLicense.php");
require(
$_SERVER['DOCUMENT_ROOT']."/utility/include/config.inc.php");

try
{
    
$db = new DBHandler($dataConnDB); 
    
$db->queryDb('SET NAMES utf8'); 
}
catch(
Exception $e)
{
    exit(
"Service not available");
}

$sess = new DBSession($db'utility_session_data',
array(
    
'id'    => 'sessid',
    
'data'    => 'datasess',
    
'expire'=> 'expire'
    
));

// Fa in maniera che la sessione non si aggiorni continuamente
// ad ogni chiamata di una pagina
$sess->setMaxLifeTime(-1);


$sessionHdl = new SessionHandler(
    
$db->getConnectionLink(),
    
// Dati locked IP (Tabella, nomi campi)
    
$lockedTableName$lockedTableFlds,
    
// Dati access log (Tabella, nomi campi)
    
$accessTableName$accessTableFlds,
    
// Dati error access log (Tabella, nomi campi)
    
$erraccTableName$erraccTableFlds
); // *** COSTRUITO L'OGGETTO SessionHandler ***

// Effettua il controllo sulla validità della sessione
// Se non si   loggati o c' stato il tentativo di modificare il session_id 
// viene visualizzato un messaggio di errore.
if(!$sessionHdl->isLogged() && $_REQUEST['action'] != 'LOGOUT')
{
    exit(
"<h1>HTTP/1.0 404 Not Found</h1>");
}
else

    
$ul = new UserLicense($_SESSION['userdata']['id_user'], 
                          
$db->getConnectionLink(), 
                          
$permTableData
                          
$actionsAllowed,
                          
$userTableField,
                          
DB);
}
?>
Non posso postare l'intera classe SessionHandler ma solo il metodo all'interno del quale si verifica il blocco.
Ho provato ad eseguire un exit(print_r($_REQUEST, true)) fino a trovare che prima della riga

if (session_id() == '') session_start(); // Avvia sessione se


lo esegue, dopo no!

(Nella classe "SessionHandler")
Codice PHP:
public function isLogged() {
        
        
$isLogged FALSE;

        if (
session_id() == ''session_start(); // Avvia sessione se necessario

        
if (isset($_SESSION['logged']) && ($_SESSION['logged']==TRUE)) { 
            
// Controlla IP e User-Agent, se richiesto 
            
if($this->opt != NULL) {
                if ((
$this->opt self::CHECK_IP) != 0) {
                    
// Deve controllare IP ADDRESS (se settato nella sessione)
                    
if (strcmp($_SESSION['remoteip'], $this->getUserIPAddress()) == 0) {
                        
$isLogged TRUE
                    }
                    else {
                        
$isLogged FALSE;
                    }
                }
                if ((
$this->opt self::CHECK_UA) != 0) {
                    
// Deve controllare USER-AGENT (se settato nella sessione)
                    
if (strcmp($_SESSION['remoteua'], $this->getUserAgentMd5()) == 0) {
                        
$isLogged TRUE
                    }
                    else {
                        
$isLogged FALSE
                    }
                }
            }
            else {
                
$isLogged TRUE// Non servono controlli su altri parametri
            
}
        }
            
    
            
        
        
// Se non è passato nell'if sopra vuol dire che L'UTENTE NON È LOGGATO
        
        
return $isLogged;
    } 
L'exit restituisce l'id della sessione e la sessione (essendo salvata nel db) esiste e contiene i dati che deve contenere. (P.S. sono anni che usiamo queste librerie, e non hanno mai dato questo problema!)

Grazie