gli ho dato un'occhiatina veloce ed è questa la funzione che fallisce:
Codice PHP:
function reg_register($data){
    
//registro l'utente
    
global $_CONFIG;
    
    
$id reg_get_unique_id();
    
mysql_query("
    INSERT INTO "
.$_CONFIG['table_utenti']."
    (name, surname, indirizzo, occupazione, username, password, temp, regdate, uid)
    VALUES
    ('"
.$data['name']."','".$data['surname']."','".$data['indirizzo']."',
    '"
.$data['occupazione']."','".$data['username']."',MD5('".$data['password']."'),
    '1', '"
.time()."','".$id."')");
    
    
//Decommentate la riga seguente per testare lo script in locale
    //echo "<a href=\"http://localhost/Articoli/autenticazione/2/scripts/confirm.php?id=".$id."\">Conferma</a>";
    
if(mysql_insert_id()){
        return 
reg_send_confirmation_mail($data['mail'], "test@localhost"$id);
    }else return 
REG_FAILED;

infatti ritorna la costante REG_FAILED.
Io aggiungerei un controllo sulla query di INSERT che c'è proprio in quella funzione... non vorrei che fosse quella che sballa tutto
Ciaoo