function crea_nuovo_anno($anno, $PHPR_TAB_PRE, $DATETIME, $tipo_periodi, $giorno_ini_fine, $mese_ini, $mese_fine, $importa_anno_prec, $silenzio, $pag)
{
    allunga_tempo_limite();
    global $lingua_mex, $LIKE, $ILIKE, $PHPR_DB_TYPE;
    $lingua_mex_orig = $lingua_mex;
    include_once "./includes/funzioni_menu.php";
    include C_DATA_PATH . "/lingua.php";
    $lingua_mex = $lingua[1];
    $tableanni = $PHPR_TAB_PRE . "anni";
    $tableprivilegi = $PHPR_TAB_PRE . "privilegi";
    $tabletransazioni = $PHPR_TAB_PRE . "transazioni";
    $tabletransazioniweb = $PHPR_TAB_PRE . "transazioniweb";
    $tablepersonalizza = $PHPR_TAB_PRE . "personalizza";
    $tablemessaggi = $PHPR_TAB_PRE . "messaggi";
    $tableinterconnessioni = $PHPR_TAB_PRE . "interconnessioni";
    $tablecontratti = $PHPR_TAB_PRE . "contratti";
    $tableutenti = $PHPR_TAB_PRE . "utenti";
    $tablerelclienti = $PHPR_TAB_PRE . "relclienti";
    if ($PHPR_DB_TYPE == "mysql" or $PHPR_DB_TYPE == "mysqli") {
        @esegui_query("SET default_storage_engine=MYISAM", 1);
    }
    $filelock = fopen(C_DATA_PATH . "/anni.lock", "w+");
    if ($filelock) {
        flock($filelock, 2);
        $anno_esistente = esegui_query("select * from {$tableanni} where idanni = {$anno}");
        if (numlin_query($anno_esistente) == 0) {
            if (C_CAMBIA_TIPO_PERIODI == "NO") {
                $tipo_periodi_esistenti = esegui_query("select * from {$tableanni} order by idanni desc");
                if (numlin_query($tipo_periodi_esistenti) != 0) {
                    $tipo_periodi = risul_query($tipo_periodi_esistenti, 0, 'tipo_periodi');
                }
            }
            # fine if (C_CAMBIA_TIPO_PERIODI == "NO")
            if ($tipo_periodi != "g") {
                $tipo_periodi = "s";
            }
            // creo la tabella con periodi settimanali e prezzi e la tabella con i nomi delle tariffe
            $tableperiodi = $PHPR_TAB_PRE . "periodi" . $anno;
            $tablenometariffe = $PHPR_TAB_PRE . "ntariffe" . $anno;
            if ($importa_anno_prec == "SI") {
                $anno_prec = $anno - 1;
                $tablenometariffe_prec = $PHPR_TAB_PRE . "ntariffe" . $anno_prec;
                $num_tariffe_tab = esegui_query("select nomecostoagg from {$tablenometariffe_prec} where idntariffe = 1");
                $num_tariffe_tab = risul_query($num_tariffe_tab, 0, 'nomecostoagg');
            } else {
                $num_tariffe_tab = 8;
            }
            $query = "create table {$tableperiodi} (idperiodi integer primary key, datainizio date not null, datafine date";
            $query2 = "create table {$tablenometariffe} (idntariffe integer, nomecostoagg varchar(40), tipo_ca varchar(2), valore_ca float8, valore_perc_ca float8, arrotonda_ca float4, tasseperc_ca float4, associasett_ca varchar(1), numsett_ca varchar(20), moltiplica_ca text, periodipermessi_ca text, beniinv_ca text, appincompatibili_ca text, variazione_ca varchar(20), mostra_ca varchar(10), categoria_ca text, letto_ca varchar(1), numlimite_ca integer, regoleassegna_ca varchar(30), utente_inserimento integer";
            $num_col_tariffe_db = $num_tariffe_tab;
            if ($num_col_tariffe_db < 12) {
                $num_col_tariffe_db = 12;
            }
            for ($num1 = 1; $num1 <= $num_col_tariffe_db; $num1++) {
                $nome_nuova_tariffa = "tariffa" . $num1;
                $query .= ", {$nome_nuova_tariffa} float8, {$nome_nuova_tariffa}" . "p float8";
                $query2 .= ", {$nome_nuova_tariffa} varchar(40)";
            }
            # fine for $num1
            $crea_tab = esegui_query($query . ")");
            if ($crea_tab) {
                esegui_query($query2 . ")");
                function estrai_col_tabella($col_table)
                {
                    $col_table = explode(",", $col_table);
                    for ($num1 = 0; $num1 < count($col_table); $num1++) {
                        $col = explode(" ", trim($col_table[$num1]));
                        $tutte_col .= $col[0] . ",";
                    }
                    # fine for $num1
                    return substr($tutte_col, 0, -1);
                }
                # fine function estrai_col_tabella
                # Creo la tabella delle prernotazioni
                $tableprenotazioni = $PHPR_TAB_PRE . "prenota" . $anno;
                $col_tableprenota = "idprenota integer primary key, idclienti integer, idappartamenti varchar(100), iddatainizio integer, iddatafine integer, assegnazioneapp varchar(4), app_assegnabili text, num_persone integer, idprenota_compagna text, tariffa text, tariffesettimanali text, incompatibilita text, sconto float8, tariffa_tot float8, caparra float8, commissioni float8, tasseperc float4, pagato float8, metodo_pagamento text, codice varchar(10), origine varchar(70), commento text, conferma varchar(4), checkin {$DATETIME}, checkout {$DATETIME}, id_anni_prec text, datainserimento {$DATETIME}, hostinserimento varchar(50), data_modifica {$DATETIME}, utente_inserimento integer ";
                esegui_query("create table {$tableprenotazioni} ({$col_tableprenota})");
                $col_tableprenota = estrai_col_tabella($col_tableprenota);
                # Creo la tabella con i costi aggiuntivi delle prenotazioni
                $tablecostiprenota = $PHPR_TAB_PRE . "costiprenota" . $anno;
                $col_tablecostiprenota = "idcostiprenota integer primary key, idprenota integer, tipo varchar(2), nome varchar(40), valore float8, valore_perc float8, arrotonda float4, tasseperc float4, associasett varchar(1), settimane text, moltiplica text, categoria text, letto varchar(1), numlimite integer, idntariffe integer, variazione varchar(10), varmoltiplica text, varnumsett varchar(20), varperiodipermessi text, varbeniinv text, varappincompatibili text, vartariffeassociate varchar(10), vartariffeincomp text, datainserimento {$DATETIME}, hostinserimento varchar(50), utente_inserimento integer";
                esegui_query("create table {$tablecostiprenota} ({$col_tablecostiprenota})");
                $col_tablecostiprenota = estrai_col_tabella($col_tablecostiprenota);
                crea_indice($tablecostiprenota, "idprenota", $PHPR_TAB_PRE . "iidpcostiprenota" . $anno);
                esegui_query("insert into {$tablecostiprenota} (idcostiprenota,numlimite) values ('1','1')");
                # Creo la tabella le relazioni tra prenotazioni e clienti non titolari
                $tablerclientiprenota = $PHPR_TAB_PRE . "rclientiprenota" . $anno;
                $col_tablerclientiprenota = "idprenota integer, idclienti integer, num_ordine integer, parentela varchar(70), datainserimento {$DATETIME}, hostinserimento varchar(50), utente_inserimento integer";
                esegui_query("create table {$tablerclientiprenota} ({$col_tablerclientiprenota})");
                $col_tablerclientiprenota = estrai_col_tabella($col_tablerclientiprenota);
                crea_indice($tablerclientiprenota, "idprenota", $PHPR_TAB_PRE . "iidprclientiprenota" . $anno);
                # Creo la tabella per le regole di assegnazione
                $tableregole = $PHPR_TAB_PRE . "regole" . $anno;
                $col_tableregole = "idregole integer, app_agenzia varchar(100), tariffa_chiusa text, tariffa_per_app text, tariffa_per_utente text, tariffa_per_persone text, tariffa_commissioni integer, iddatainizio integer, iddatafine integer, motivazione text, motivazione2 text";
                esegui_query("create table {$tableregole} ({$col_tableregole})");
                $col_tableregole = estrai_col_tabella($col_tableregole);
                # Creo la tabella con i costi di gestione
                $tablecosti = $PHPR_TAB_PRE . "costi" . $anno;
                $col_tablecosti = "idcosti integer unique,nome_costo text, val_costo float8, tipo_costo text, nome_cassa varchar(70), persona_costo text, provenienza_costo text, metodo_pagamento text, datainserimento {$DATETIME}, hostinserimento varchar(50), utente_inserimento integer";
                esegui_query("create table {$tablecosti} ({$col_tablecosti})");
                $col_tablecosti = estrai_col_tabella($col_tablecosti);
                # Creo la tabella per la storia entrate-uscite
                $tablesoldi = $PHPR_TAB_PRE . "soldi" . $anno;
                $col_tablesoldi = "idsoldi integer unique, motivazione text, id_pagamento text, metodo_pagamento text, saldo_prenota float8, saldo_cassa float8, soldi_prima float8, data_inserimento {$DATETIME}, utente_inserimento integer";
                esegui_query("create table {$tablesoldi} ({$col_tablesoldi})");
                $col_tablesoldi = estrai_col_tabella($col_tablesoldi);
                $tabelle_lock = array($tableanni, $tableprenotazioni, $tablecostiprenota, $tablerclientiprenota, $tablenometariffe, $tableperiodi, $tablerelclienti, $tablecosti, $tableregole, $tablesoldi, $tablepersonalizza, $tableprivilegi, $tabletransazioni);
                if ($importa_anno_prec == "SI") {
                    $anno_prec = $anno - 1;
                    $tablenometariffe_prec = $PHPR_TAB_PRE . "ntariffe" . $anno_prec;
                    $tableprenota_prec = $PHPR_TAB_PRE . "prenota" . $anno_prec;
                    $tablecostiprenota_prec = $PHPR_TAB_PRE . "costiprenota" . $anno_prec;
                    $tablerclientiprenota_prec = $PHPR_TAB_PRE . "rclientiprenota" . $anno_prec;
                    $tableperiodi_prec = $PHPR_TAB_PRE . "periodi" . $anno_prec;
                    $tableregole_prec = $PHPR_TAB_PRE . "regole" . $anno_prec;
                    $tablesoldi_prec = $PHPR_TAB_PRE . "soldi" . $anno_prec;
                    $tablecosti_prec = $PHPR_TAB_PRE . "costi" . $anno_prec;
                    $tabelle_lock = array($tableanni, $tableprenota_prec, $tableprenotazioni, $tablecostiprenota_prec, $tablecostiprenota, $tablerclientiprenota_prec, $tablerclientiprenota, $tablenometariffe, $tableperiodi, $tablerelclienti, $tablecosti_prec, $tablecosti, $tableregole, $tablesoldi_prec, $tablesoldi, $tableinterconnessioni, $tablemessaggi, $tablepersonalizza, $tableprivilegi, $tabletransazioni);
                    $altre_tab_lock = array($tablenometariffe_prec, $tableperiodi_prec, $tableregole_prec, $tablecontratti, $tableutenti);
                    $max_data_ini_prec = esegui_query("select max(datainizio) from {$tableperiodi_prec}");
                    if (numlin_query($max_data_ini_prec) != 0) {
                        $max_data_ini_prec = risul_query($max_data_ini_prec, 0, 0);
                        $max_mese_prec = 0;
                        if (substr($max_data_ini_prec, 0, 4) >= $anno) {
                            $max_mese_prec = substr($max_data_ini_prec, 5, 2);
                        }
                        if (substr($max_data_ini_prec, 0, 4) == $anno + 1) {
                            $max_mese_prec = $max_mese_prec + 12;
                        }
                        if (substr($max_data_ini_prec, 0, 4) == $anno + 2) {
                            $max_mese_prec = $max_mese_prec + 24;
                        }
                        if (substr($max_data_ini_prec, 0, 4) == $anno + 3) {
                            $max_mese_prec = $max_mese_prec + 36;
                        }
                        if (substr($max_data_ini_prec, 0, 4) == $anno + 4) {
                            $max_mese_prec = $max_mese_prec + 48;
                        }
                        if ($max_mese_prec > $mese_fine) {
                            $mese_fine = $max_mese_prec;
                        }
                        $data_ini_agg = date("Y-m-d", mktime(0, 0, 0, substr($max_data_ini_prec, 5, 2) + 1, 1, substr($max_data_ini_prec, 0, 4)));
                    } else {
                        $max_data_ini_prec = "";
                        $max_mese_prec = "";
                        $data_ini_agg = "";
                    }
                    # fine else if (numlin_query($max_data_ini_prec) != 0)
                } else {
                    unset($altre_tab_lock);
                }
                $tabelle_lock = lock_tabelle($tabelle_lock, $altre_tab_lock);
                # Elimino tutte le transazioni, potrebbero contenere date dell'anno creato
                esegui_query("delete from {$tabletransazioni}");
                # Inserisco l'anno nella tabella anni
                esegui_query("insert into {$tableanni} (idanni,tipo_periodi) values ('{$anno}','{$tipo_periodi}')");
                esegui_query("insert into {$tablecosti} (idcosti) values ('0')");
                esegui_query("insert into {$tablesoldi} (idsoldi,motivazione,soldi_prima) values ('1','soldi_prenotazioni_cancellate','0')");
                // trovo il primo giorno di inizio/fine dell'anno (nel caso di periodi settimanali)
                $numgiorno = 1;
                $giorno_ini_fine = (string) $giorno_ini_fine;
                if ($giorno_ini_fine != "0" and $giorno_ini_fine != "1" and $giorno_ini_fine != "2" and $giorno_ini_fine != "3" and $giorno_ini_fine != "4" and $giorno_ini_fine != "5" and $giorno_ini_fine != "6") {
                    $giorno_ini_fine = 6;
                }
                do {
                    $nomegiorno = date("w", mktime(0, 0, 0, 1, $numgiorno, $anno));
                    $numgiorno = $numgiorno + 1;
                } while ($nomegiorno != $giorno_ini_fine);
                $numgiorno = $numgiorno - 1;
                if ($tipo_periodi == "g") {
                    $numgiorno = 1;
                    $aggiungi_giorni = 1;
                } else {
                    $aggiungi_giorni = 7;
                }
                if ($mese_ini > $mese_fine) {
                    if ($silenzio != "SI") {
                        echo mex("I mesi erano indicati erroneamente, sono stati inseriti i mesi da Gennaio a Dicembre", $pag) . ".<br>";
                    }
                    $mese_ini = 1;
                    if ($mese_fine < 12) {
                        $mese_fine = 12;
                    }
                }
                # fine if ($mese_ini > $mese_fine)
                $anno_fine = $anno + 3;
                $idperiodi = 1;
                $fileaperto = fopen(C_DATA_PATH . "/selectperiodi{$anno}.1.php", "a+");
                flock($fileaperto, 2);
                $date_option = "";
                $n_date_menu = 0;
                do {
                    $datainizio = date("Y-m-d", mktime(0, 0, 0, 1, $numgiorno, $anno));
                    $annocreato = date("Y", mktime(0, 0, 0, 1, $numgiorno, $anno));
                    $mesecreato = date("n", mktime(0, 0, 0, 1, $numgiorno, $anno));
                    $nome_giorno = date("D", mktime(0, 0, 0, 1, $numgiorno, $anno));
                    $nome_mese = date("M", mktime(0, 0, 0, 1, $numgiorno, $anno));
                    $numero_giorno = date("d", mktime(0, 0, 0, 1, $numgiorno, $anno));
                    $numero_anno = $annocreato;
                    $numgiorno = $numgiorno + $aggiungi_giorni;
                    $datafine = date("Y-m-d", mktime(0, 0, 0, 1, $numgiorno, $anno));
                    $annocreato2 = date("Y", mktime(0, 0, 0, 1, $numgiorno, $anno));
                    $mesecreato2 = date("n", mktime(0, 0, 0, 1, $numgiorno, $anno));
                    if ($annocreato > $anno) {
                        $diff = $annocreato - $anno;
                        $mesecreato = $diff * 12 + $mesecreato;
                    }
                    # fine if ($annocreato > $anno)
                    if ($annocreato2 > $anno) {
                        $diff = $annocreato2 - $anno;
                        $mesecreato2 = $diff * 12 + $mesecreato2;
                    }
                    # fine if ($annocreato2 > $anno)
                    if ($mesecreato >= $mese_ini and $mesecreato <= $mese_fine) {
                        esegui_query("insert into {$tableperiodi} ( idperiodi, datainizio, datafine) values ( {$idperiodi}, '{$datainizio}', '{$datafine}')");
                        if ($tipo_periodi == "g") {
                            if ($nome_giorno == "Sun") {
                                $nome_giorno = mex(" Do", $pag);
                            }
                            if ($nome_giorno == "Mon") {
                                $nome_giorno = mex(" Lu", $pag);
                            }
                            if ($nome_giorno == "Tue") {
                                $nome_giorno = mex(" Ma", $pag);
                            }
                            if ($nome_giorno == "Wed") {
                                $nome_giorno = mex(" Me", $pag);
                            }
                            if ($nome_giorno == "Thu") {
                                $nome_giorno = mex(" Gi", $pag);
                            }
                            if ($nome_giorno == "Fri") {
                                $nome_giorno = mex(" Ve", $pag);
                            }
                            if ($nome_giorno == "Sat") {
                                $nome_giorno = mex(" Sa", $pag);
                            }
                        } else {
                            $nome_giorno = "";
                        }
                        if ($nome_mese == "Jan") {
                            $nome_mese = mex("Gen", $pag);
                        }
                        if ($nome_mese == "Feb") {
                            $nome_mese = mex("Feb", $pag);
                        }
                        if ($nome_mese == "Mar") {
                            $nome_mese = mex("Mar", $pag);
                        }
                        if ($nome_mese == "Apr") {
                            $nome_mese = mex("Apr", $pag);
                        }
                        if ($nome_mese == "May") {
                            $nome_mese = mex("Mag", $pag);
                        }
                        if ($nome_mese == "Jun") {
                            $nome_mese = mex("Giu", $pag);
                        }
                        if ($nome_mese == "Jul") {
                            $nome_mese = mex("Lug", $pag);
                        }
                        if ($nome_mese == "Aug") {
                            $nome_mese = mex("Ago", $pag);
                        }
                        if ($nome_mese == "Sep") {
                            $nome_mese = mex("Set", $pag);
                        }
                        if ($nome_mese == "Oct") {
                            $nome_mese = mex("Ott", $pag);
                        }
                        if ($nome_mese == "Nov") {
                            $nome_mese = mex("Nov", $pag);
                        }
                        if ($nome_mese == "Dec") {
                            $nome_mese = mex("Dic", $pag);
                        }
                        if (!$date_option) {
                            $a_ini_menu = substr($datainizio, 0, 4);
                            $m_ini_menu = substr($datainizio, 5, 2) - 1;
                            $g_ini_menu = substr($datainizio, 8, 2);
                        }
                        # fine if (!$date_option)
                        $n_date_menu++;
                        $date_option .= "<option value=\\\"{$datainizio}\\\">{$nome_mese} {$numero_giorno}{$nome_giorno}, {$numero_anno}</option>\n";
                        $idperiodi = $idperiodi + 1;
                        $datafine2 = $datafine;
                    }
                    # fine if ($mesecreato >= $mese_ini and $mesecreato <= $mese_fine)
                } while ($annocreato2 <= $anno_fine or $mesecreato2 == 48);
                $numero_mese = substr($datafine2, 5, 2);
                if ($numero_mese == "01") {
                    $nome_mese = mex("Gen", $pag);
                }
                if ($numero_mese == "02") {
                    $nome_mese = mex("Feb", $pag);
                }
                if ($numero_mese == "03") {
                    $nome_mese = mex("Mar", $pag);
                }
                if ($numero_mese == "04") {
                    $nome_mese = mex("Apr", $pag);
                }
                if ($numero_mese == "05") {
                    $nome_mese = mex("Mag", $pag);
                }
                if ($numero_mese == "06") {
                    $nome_mese = mex("Giu", $pag);
                }
                if ($numero_mese == "07") {
                    $nome_mese = mex("Lug", $pag);
                }
                if ($numero_mese == "08") {
                    $nome_mese = mex("Ago", $pag);
                }
                if ($numero_mese == "09") {
                    $nome_mese = mex("Set", $pag);
                }
                if ($numero_mese == "10") {
                    $nome_mese = mex("Ott", $pag);
                }
                if ($numero_mese == "11") {
                    $nome_mese = mex("Nov", $pag);
                }
                if ($numero_mese == "12") {
                    $nome_mese = mex("Dic", $pag);
                }
                $numero_giorno = substr($datafine2, 8, 2);
                $numero_anno = substr($datafine2, 0, 4);
                $n_date_menu++;
                $date_option .= "<option value=\\\"{$datafine2}\\\">{$nome_mese} {$numero_giorno}, {$numero_anno}</option>\n";
                fwrite($fileaperto, "<?php \n\n\$y_ini_menu[0] = \"{$a_ini_menu}\";\n\$m_ini_menu[0] = \"{$m_ini_menu}\";\n\$d_ini_menu[0] = \"{$g_ini_menu}\";\n\$n_dates_menu[0] = \"{$n_date_menu}\";\n\$d_increment[0] = \"{$aggiungi_giorni}\";\n\$d_names = \"\\\"" . mex(" Do", $pag) . "\\\",\\\"" . mex(" Lu", $pag) . "\\\",\\\"" . mex(" Ma", $pag) . "\\\",\\\"" . mex(" Me", $pag) . "\\\",\\\"" . mex(" Gi", $pag) . "\\\",\\\"" . mex(" Ve", $pag) . "\\\",\\\"" . mex(" Sa", $pag) . "\\\"\";\n\$m_names = \"\\\"" . mex("Gen", $pag) . "\\\",\\\"" . mex("Feb", $pag) . "\\\",\\\"" . mex("Mar", $pag) . "\\\",\\\"" . mex("Apr", $pag) . "\\\",\\\"" . mex("Mag", $pag) . "\\\",\\\"" . mex("Giu", $pag) . "\\\",\\\"" . mex("Lug", $pag) . "\\\",\\\"" . mex("Ago", $pag) . "\\\",\\\"" . mex("Set", $pag) . "\\\",\\\"" . mex("Ott", $pag) . "\\\",\\\"" . mex("Nov", $pag) . "\\\",\\\"" . mex("Dic", $pag) . "\\\"\";\n\n\$dates_options_list = \"\n\n{$date_option}\n\";\n\n?>");
                flock($fileaperto, 3);
                fclose($fileaperto);
                if ($importa_anno_prec == "SI" and @is_file(C_DATA_PATH . "/selperiodimenu" . ($anno - 1) . ".1.php")) {
                    estendi_menu_date(C_DATA_PATH . "/selperiodimenu" . ($anno - 1) . ".1.php", C_DATA_PATH . "/selperiodimenu{$anno}.1.php", $tipo_periodi, date("Y-m-d", mktime(0, 0, 0, $mese_ini, 1, $anno)), $data_ini_agg, date("Y-m-d", mktime(0, 0, 0, $mese_fine + 1, 1, $anno)), $anno, $pag);
                } else {
                    copy(C_DATA_PATH . "/selectperiodi{$anno}.1.php", C_DATA_PATH . "/selperiodimenu{$anno}.1.php");
                }
                $lista_clienti_importati = "";
                # Importo eventuali prenotazioni, tariffe e regole dell'anno precedente
                if ($importa_anno_prec == "SI") {
                    $tableprenota = $tableprenotazioni;
                    $data_inizio_periodi = esegui_query("select * from {$tableperiodi} where idperiodi = 1");
                    $data_inizio_periodi = risul_query($data_inizio_periodi, 0, 'datainizio');
                    $ini_periodo_interferenza = esegui_query("select * from {$tableperiodi_prec} where datainizio = '{$data_inizio_periodi}'");
                    $num_periodo_interferenza = numlin_query($ini_periodo_interferenza);
                    $tipo_periodi_prec = esegui_query("select * from {$tableanni} where idanni = {$anno_prec}");
                    $tipo_periodi_prec = risul_query($tipo_periodi_prec, 0, 'tipo_periodi');
                    if ($tipo_periodi_prec != $tipo_periodi) {
                        $num_periodo_interferenza = 0;
                    }
                    if ($num_periodo_interferenza == 0) {
                        if ($silenzio != "SI") {
                            echo mex("Non ci sono periodi che riguardano il ", $pag) . $anno . mex(" nel ", $pag) . $anno_prec . mex(", o il giorno di inizio/fine locazione era differente, sono stati importati solo i data riguardanti costi aggiuntivi, caparra, nome delle tariffe, privilegi degli utenti e regole di assegnazione 2 e 3", $pag) . ".<br>";
                        }
                    } else {
                        $id_data_fine_periodi = esegui_query("select max(idperiodi) from {$tableperiodi}");
                        $id_data_fine_periodi = risul_query($id_data_fine_periodi, 0, 0);
                        $id_data_ini_periodi_prec = risul_query($ini_periodo_interferenza, 0, 'idperiodi');
                        $id_data_fine_periodi_prec = esegui_query("select max(idperiodi) from {$tableperiodi_prec}");
                        $id_data_fine_periodi_prec = risul_query($id_data_fine_periodi_prec, 0, 0);
                        $num_periodi_prec = $id_data_fine_periodi_prec - $id_data_ini_periodi_prec + 1;
                        if ($num_periodi_prec > $id_data_fine_periodi) {
                            $id_data_fine_periodi_prec = $id_data_ini_periodi_prec + $id_data_fine_periodi - 1;
                            $prenota_non_importabili = esegui_query("select * from {$tableprenota_prec} where iddatafine > {$id_data_fine_periodi_prec} ");
                            $num_prenota_non_importabili = numlin_query($prenota_non_importabili);
                            if ($num_prenota_non_importabili != 0) {
                                echo "<br>ERROR<br>";
                            }
                        }
                        # fine if ($num_periodi_prec > $id_data_fine_periodi)
                        $idprenota_corr = 0;
                        $max_idprenota_prec = esegui_query("select max(idprenota) from {$tableprenota_prec}");
                        $max_idprenota_prec = risul_query($max_idprenota_prec, 0, 0) + 1;
                        $max_idcostiprenota_prec = esegui_query("select max(idcostiprenota) from {$tablecostiprenota_prec}");
                        $max_idcostiprenota_prec = risul_query($max_idcostiprenota_prec, 0, 0) + 1;
                        $prenota_gia_iniziate = esegui_query("select * from {$tableprenota_prec} where iddatainizio < {$id_data_ini_periodi_prec} and iddatafine >= {$id_data_ini_periodi_prec} and iddatafine <= {$id_data_fine_periodi_prec} ");
                        $num_prenota_gia_iniziate = numlin_query($prenota_gia_iniziate);
                        for ($num1 = 0; $num1 < $num_prenota_gia_iniziate; $num1 = $num1 + 1) {
                            $idprenota = risul_query($prenota_gia_iniziate, $num1, 'idprenota');
                            $idclienti = risul_query($prenota_gia_iniziate, $num1, 'idclienti');
                            $lista_clienti_importati .= "and idclienti != '{$idclienti}' ";
                            $idappartamenti = risul_query($prenota_gia_iniziate, $num1, 'idappartamenti');
                            $iddatafine = risul_query($prenota_gia_iniziate, $num1, 'iddatafine');
                            $iddatafine = $iddatafine - $id_data_ini_periodi_prec + 1;
                            $datainserimento = risul_query($prenota_gia_iniziate, $num1, 'datainserimento');
                            $hostinserimento = risul_query($prenota_gia_iniziate, $num1, 'hostinserimento');
                            $data_modifica = risul_query($prenota_gia_iniziate, $num1, 'data_modifica');
                            $utente_inserimento = risul_query($prenota_gia_iniziate, $num1, 'utente_inserimento');
                            $checkin = risul_query($prenota_gia_iniziate, $num1, 'checkin');
                            $checkout = risul_query($prenota_gia_iniziate, $num1, 'checkout');
                            $codice = risul_query($prenota_gia_iniziate, $num1, 'codice');
                            $idprenota_corr++;
                            esegui_query("insert into {$tableprenota} (idprenota,idclienti,idappartamenti,iddatainizio,iddatafine,assegnazioneapp,commento,codice,datainserimento,hostinserimento,utente_inserimento) values ('{$idprenota_corr}','{$idclienti}','{$idappartamenti}','0',{$iddatafine},'k','{$idprenota}','{$codice}','{$datainserimento}','{$hostinserimento}','{$utente_inserimento}') ");
                            if ($checkin) {
                                esegui_query("update {$tableprenota} set checkin = '" . aggslashdb($checkin) . "' where idprenota = '{$idprenota_corr}'");
                            }
                            if ($checkout) {
                                esegui_query("update {$tableprenota} set checkout = '" . aggslashdb($checkout) . "' where idprenota = '{$idprenota_corr}'");
                            }
                            esegui_query("update {$tablecostiprenota_prec} set idprenota = '{$max_idprenota_prec}' where idprenota = '{$idprenota}'");
                            esegui_query("insert into {$tablecostiprenota} select {$col_tablecostiprenota} from {$tablecostiprenota_prec} where idprenota = '{$max_idprenota_prec}' ");
                            esegui_query("update {$tablecostiprenota} set idprenota = '{$idprenota_corr}' where idprenota = '{$max_idprenota_prec}'");
                            esegui_query("update {$tablecostiprenota_prec} set idprenota = '{$idprenota}' where idprenota = '{$max_idprenota_prec}'");
                            esegui_query("update {$tablerclientiprenota_prec} set idprenota = '{$max_idprenota_prec}' where idprenota = '{$idprenota}'");
                            esegui_query("insert into {$tablerclientiprenota} select {$col_tablerclientiprenota} from {$tablerclientiprenota_prec} where idprenota = '{$max_idprenota_prec}' ");
                            esegui_query("update {$tablerclientiprenota} set idprenota = '{$idprenota_corr}' where idprenota = '{$max_idprenota_prec}'");
                            esegui_query("update {$tablerclientiprenota_prec} set idprenota = '{$idprenota}' where idprenota = '{$max_idprenota_prec}'");
                        }
                        # fine for $num1
                        $nuovo_idprenota = "";
                        $nuovo_iddatainizio = "";
                        $nuovo_iddatafine = "";
                        $prenota_importate = esegui_query("select * from {$tableprenota_prec} where iddatainizio >= '{$id_data_ini_periodi_prec}' and iddatafine <= '{$id_data_fine_periodi_prec}' order by idprenota ");
                        $num_prenota_importate = numlin_query($prenota_importate);
                        for ($num1 = 0; $num1 < $num_prenota_importate; $num1 = $num1 + 1) {
                            $idprenota = risul_query($prenota_importate, $num1, 'idprenota');
                            $iddatainizio = risul_query($prenota_importate, $num1, 'iddatainizio');
                            $iddatainizio = $iddatainizio - $id_data_ini_periodi_prec + 1;
                            $iddatafine = risul_query($prenota_importate, $num1, 'iddatafine');
                            $iddatafine = $iddatafine - $id_data_ini_periodi_prec + 1;
                            $idclienti = risul_query($prenota_importate, $num1, 'idclienti');
                            $lista_clienti_importati .= "and idclienti != '{$idclienti}' ";
                            $id_anni_prec = risul_query($prenota_importate, $num1, 'id_anni_prec');
                            if (!$id_anni_prec) {
                                $id_anni_prec = ";";
                            }
                            $id_anni_prec .= "{$anno_prec},{$idprenota};";
                            $idprenota_corr++;
                            esegui_query("update {$tableprenota_prec} set idprenota = '{$max_idprenota_prec}' where idprenota = '{$idprenota}'");
                            esegui_query("insert into {$tableprenota} select {$col_tableprenota} from {$tableprenota_prec} where idprenota = '{$max_idprenota_prec}' ");
                            esegui_query("update {$tableprenota} set iddatainizio = '{$iddatainizio}' where idprenota = '{$max_idprenota_prec}'");
                            esegui_query("update {$tableprenota} set iddatafine = '{$iddatafine}' where idprenota = '{$max_idprenota_prec}'");
                            esegui_query("update {$tableprenota} set id_anni_prec = '{$id_anni_prec}' where idprenota = '{$max_idprenota_prec}'");
                            esegui_query("update {$tableprenota} set idprenota = '{$idprenota_corr}' where idprenota = '{$max_idprenota_prec}'");
                            esegui_query("delete from {$tableprenota_prec} where idprenota = '{$max_idprenota_prec}'");
                            esegui_query("update {$tablecostiprenota_prec} set idprenota = '{$max_idprenota_prec}' where idprenota = '{$idprenota}'");
                            esegui_query("insert into {$tablecostiprenota} select {$col_tablecostiprenota} from {$tablecostiprenota_prec} where idprenota = '{$max_idprenota_prec}' ");
                            esegui_query("update {$tablecostiprenota} set idprenota = '{$idprenota_corr}' where idprenota = '{$max_idprenota_prec}'");
                            esegui_query("delete from {$tablecostiprenota_prec} where idprenota = '{$max_idprenota_prec}'");
                            esegui_query("update {$tablerclientiprenota_prec} set idprenota = '{$max_idprenota_prec}' where idprenota = '{$idprenota}'");
                            esegui_query("insert into {$tablerclientiprenota} select {$col_tablerclientiprenota} from {$tablerclientiprenota_prec} where idprenota = '{$max_idprenota_prec}' ");
                            esegui_query("update {$tablerclientiprenota} set idprenota = '{$idprenota_corr}' where idprenota = '{$max_idprenota_prec}'");
                            esegui_query("delete from {$tablerclientiprenota_prec} where idprenota = '{$max_idprenota_prec}'");
                            esegui_query("update {$tableinterconnessioni} set idlocale = '{$idprenota_corr}', anno = '{$anno}' where idlocale = '{$idprenota}' and ( tipoid = 'prenota' or tipoid = 'mess' ) and anno = '{$anno_prec}' ");
                            $nuovo_idprenota[$idprenota] = $idprenota_corr;
                            $nuovo_iddatainizio[$idprenota] = $iddatainizio;
                            $nuovo_iddatafine[$idprenota] = $iddatafine;
                        }
                        # fine for $num1
                        esegui_query("update {$tablecostiprenota} set numlimite = '" . ($idprenota_corr + 1) . "' where idcostiprenota = '1'");
                        $prenota_compagne = esegui_query("select idprenota,idprenota_compagna from {$tableprenota} where idprenota_compagna != '' ");
                        $num_prenota_compagne = numlin_query($prenota_compagne);
                        for ($num1 = 0; $num1 < $num_prenota_compagne; $num1++) {
                            $idprenota = risul_query($prenota_compagne, $num1, 'idprenota');
                            $idprenota_compagna = risul_query($prenota_compagne, $num1, 'idprenota_compagna');
                            $idprenota_compagna = explode(",", $idprenota_compagna);
                            $n_idprenota_compagna = $nuovo_idprenota[$idprenota_compagna[0]];
                            for ($num2 = 1; $num2 < count($idprenota_compagna); $num2++) {
                                $n_idprenota_compagna .= "," . $nuovo_idprenota[$idprenota_compagna[$num2]];
                            }
                            esegui_query("update {$tableprenota} set idprenota_compagna = '{$n_idprenota_compagna}' where idprenota = '{$idprenota}'");
                        }
                        # fine for $num1
                        $id_costi_agg_importati = esegui_query("select idcostiprenota from {$tablecostiprenota} where idcostiprenota != '1' order by idcostiprenota");
                        $num_id_costi_agg_importati = numlin_query($id_costi_agg_importati);
                        for ($num1 = 0; $num1 < $num_costi_agg_importati; $num1++) {
                            $idcostiprenota = risul_query($id_costi_agg_importati, $num1, 'idcostiprenota');
                            $max_idcostiprenota_prec++;
                            esegui_query("update {$tablecostiprenota} set idcostiprenota = '{$max_idcostiprenota_prec}' where idcostiprenota = '{$idcostiprenota}'");
                        }
                        # fine for $num1
                        $costi_agg_importati = esegui_query("select * from {$tablecostiprenota} where idcostiprenota != '1' order by idcostiprenota");
                        $num_costi_agg_importati = numlin_query($costi_agg_importati);
                        for ($num1 = 0; $num1 < $num_costi_agg_importati; $num1++) {
                            $idcostiprenota = risul_query($costi_agg_importati, $num1, 'idcostiprenota');
                            $settimane = risul_query($costi_agg_importati, $num1, 'settimane');
                            if (str_replace(",", "", $settimane) != $settimane) {
                                $settimane = explode(",", $settimane);
                                $settimane_nuove = ",";
                                for ($num2 = 1; $num2 < count($settimane) - 1; $num2++) {
                                    $settimane_nuove .= $settimane[$num2] - $id_data_ini_periodi_prec + 1 . ",";
                                }
                                esegui_query("update {$tablecostiprenota} set settimane = '{$settimane_nuove}' where idcostiprenota = '{$idcostiprenota}'");
                            }
                            # fine if (str_replace(",","",$settimane) != $settimane)
                            $varperiodipermessi = risul_query($costi_agg_importati, $num1, 'varperiodipermessi');
                            if ($varperiodipermessi) {
                                $vpp_nuovi = substr($varperiodipermessi, 0, 1);
                                $varperiodipermessi = explode(",", substr($varperiodipermessi, 1));
                                for ($num2 = 0; $num2 < count($varperiodipermessi); $num2++) {
                                    $id_data_fine_vpp = explode("-", $varperiodipermessi[$num2]);
                                    $id_data_inizio_vpp = $id_data_fine_vpp[0];
                                    $id_data_fine_vpp = $id_data_fine_vpp[1];
                                    if ($id_data_fine_vpp >= $id_data_ini_periodi_prec and $id_data_inizio_vpp <= $id_data_fine_periodi_prec) {
                                        if ($id_data_inizio_vpp < $id_data_ini_periodi_prec) {
                                            $id_data_inizio_vpp = $id_data_ini_periodi_prec;
                                        }
                                        if ($id_data_fine_vpp > $id_data_fine_periodi_prec) {
                                            $id_data_fine_vpp = $id_data_fine_periodi_prec;
                                        }
                                        $id_data_inizio_vpp = $id_data_inizio_vpp - $id_data_ini_periodi_prec + 1;
                                        $id_data_fine_vpp = $id_data_fine_vpp - $id_data_ini_periodi_prec + 1;
                                        $vpp_nuovi .= $id_data_inizio_vpp . "-" . $id_data_fine_vpp . ",";
                                    }
                                    # fine if ($id_data_fine_vpp >= $id_data_ini_periodi_prec and...
                                }
                                # fine for $num2
                                if (strlen($vpp_nuovi) > 1) {
                                    $vpp_nuovi = substr($vpp_nuovi, 0, -1);
                                }
                                esegui_query("update {$tablecostiprenota} set varperiodipermessi = '{$vpp_nuovi}' where idcostiprenota = '{$idcostiprenota}'");
                            }
                            # fine if ($varperiodipermessi)
                            esegui_query("update {$tablecostiprenota} set idcostiprenota = '" . ($num1 + 2) . "' where idcostiprenota = '{$idcostiprenota}'");
                        }
                        # fine for $num1
                        $tariffe_importate = esegui_query("select * from {$tableperiodi_prec} where idperiodi >= '{$id_data_ini_periodi_prec}' and idperiodi <= '{$id_data_fine_periodi_prec}' ");
                        $num_tariffe_iportate = numlin_query($tariffe_importate);
                        for ($num1 = 0; $num1 < $num_tariffe_iportate; $num1 = $num1 + 1) {
                            $idperiodi = risul_query($tariffe_importate, $num1, 'idperiodi');
                            $idperiodi = $idperiodi - $id_data_ini_periodi_prec + 1;
                            for ($num2 = 1; $num2 <= $num_tariffe_tab; $num2++) {
                                $tariffa = (string) risul_query($tariffe_importate, $num1, "tariffa" . $num2);
                                if (strcmp($tariffa, "")) {
                                    esegui_query("update {$tableperiodi} set tariffa{$num2} = '{$tariffa}' where idperiodi = {$idperiodi} ");
                                }
                                $tariffap = (string) risul_query($tariffe_importate, $num1, "tariffa" . $num2 . "p");
                                if (strcmp($tariffap, "")) {
                                    esegui_query("update {$tableperiodi} set tariffa{$num2}" . "p = '{$tariffap}' where idperiodi = {$idperiodi} ");
                                }
                            }
                            # fine for $num2
                        }
                        # fine for $num1
                        $regole_prec = esegui_query("select * from {$tableregole_prec} where iddatafine >= '{$id_data_ini_periodi_prec}' ");
                        $num_regole_prec = numlin_query($regole_prec);
                        for ($num1 = 0; $num1 < $num_regole_prec; $num1 = $num1 + 1) {
                            $idregole = risul_query($regole_prec, $num1, 'idregole');
                            $app_agenzia = risul_query($regole_prec, $num1, 'app_agenzia');
                            $tariffa_chiusa = risul_query($regole_prec, $num1, 'tariffa_chiusa');
                            $tariffa_commissioni = risul_query($regole_prec, $num1, 'tariffa_commissioni');
                            $iddatainizio = risul_query($regole_prec, $num1, 'iddatainizio');
                            $motivazione = risul_query($regole_prec, $num1, 'motivazione');
                            $motivazione2 = risul_query($regole_prec, $num1, 'motivazione2');
                            if ($iddatainizio < $id_data_ini_periodi_prec) {
                                $iddatainizio = $id_data_ini_periodi_prec;
                            }
                            $iddatainizio = $iddatainizio - $id_data_ini_periodi_prec + 1;
                            $iddatafine = risul_query($regole_prec, $num1, 'iddatafine');
                            if ($iddatafine > $id_data_fine_periodi_prec) {
                                $iddatafine = $id_data_fine_periodi_prec;
                            }
                            $iddatafine = $iddatafine - $id_data_ini_periodi_prec + 1;
                            if ($tariffa_commissioni) {
                                esegui_query("insert into {$tableregole} (idregole,tariffa_commissioni,iddatainizio,iddatafine) values ('{$idregole}','{$tariffa_commissioni}','{$iddatainizio}','{$iddatafine}') ");
                            } else {
                                if ($tariffa_chiusa) {
                                    esegui_query("insert into {$tableregole} (idregole,tariffa_chiusa,iddatainizio,iddatafine) values ('{$idregole}','{$tariffa_chiusa}','{$iddatainizio}','{$iddatafine}') ");
                                } else {
                                    esegui_query("insert into {$tableregole} (idregole,app_agenzia,iddatainizio,iddatafine) values ('{$idregole}','{$app_agenzia}','{$iddatainizio}','{$iddatafine}') ");
                                }
                            }
                            # fine else $tariffa_commissioni)
                            if (strcmp($motivazione, "")) {
                                esegui_query("update {$tableregole} set motivazione = '" . aggslashdb($motivazione) . "' where idregole = '{$idregole}' ");
                            }
                            if (strcmp($motivazione2, "")) {
                                esegui_query("update {$tableregole} set motivazione2 = '" . aggslashdb($motivazione2) . "' where idregole = '{$idregole}' ");
                            }
                        }
                        # fine for $num1
                        $soldi_importati = esegui_query("select * from {$tablesoldi_prec} where data_inserimento >= '{$data_inizio_periodi}' and  saldo_prenota is not NULL order by idsoldi");
                        $num_soldi_importati = numlin_query($soldi_importati);
                        $idsoldi_corr = 1;
                        for ($num1 = 0; $num1 < $num_soldi_importati; $num1++) {
                            $motiv = explode(";", risul_query($soldi_importati, $num1, 'motivazione'));
                            if ($nuovo_idprenota[$motiv[3]]) {
                                $idsoldi_corr++;
                                $idsoldi_prec = risul_query($soldi_importati, $num1, 'idsoldi');
                                $n_motiv = $motiv[0] . ";" . $nuovo_iddatainizio[$motiv[3]] . ";" . $nuovo_iddatafine[$motiv[3]] . ";" . $nuovo_idprenota[$motiv[3]];
                                esegui_query("insert into {$tablesoldi} select {$col_tablesoldi} from {$tablesoldi_prec} where idsoldi = '{$idsoldi_prec}' ");
                                esegui_query("delete from {$tablesoldi_prec} where idsoldi = '{$idsoldi_prec}' ");
                                esegui_query("update {$tablesoldi} set motivazione = '{$n_motiv}' where idsoldi = '{$idsoldi_prec}' ");
                                esegui_query("update {$tablesoldi} set idsoldi = '{$idsoldi_corr}' where idsoldi = '{$idsoldi_prec}' ");
                            }
                            # fine if ($nuovo_idprenota[$motiv[3]])
                        }
                        # fine for $num1
                        $costi_importati = esegui_query("select * from {$tablecosti_prec} where datainserimento >= '{$data_inizio_periodi}' and  tipo_costo is not NULL order by idcosti");
                        $num_costi_importati = numlin_query($costi_importati);
                        $idcosti_corr = 0;
                        for ($num1 = 0; $num1 < $num_costi_importati; $num1++) {
                            $idcosti_corr++;
                            $idcosti_prec = risul_query($costi_importati, $num1, 'idcosti');
                            esegui_query("insert into {$tablecosti} select {$col_tablecosti} from {$tablecosti_prec} where idcosti = '{$idcosti_prec}' ");
                            esegui_query("delete from {$tablecosti_prec} where idcosti = '{$idcosti_prec}' ");
                            esegui_query("update {$tablecosti} set idcosti = '{$idcosti_corr}' where idcosti = '{$idcosti_prec}' ");
                        }
                        # fine for $num1
                        $costo_cassa = 0;
                        $data_lim = $anno + 1 . "-01-01 00:00:00";
                        $costi_cassa = esegui_query("select * from {$tablecosti} where tipo_costo = 'e' and provenienza_costo = 'p' and datainserimento < '{$data_lim}' ");
                        $num_costi_cassa = numlin_query($costi_cassa);
                        for ($num2 = 0; $num2 < $num_costi_cassa; $num2++) {
                            $costo_cassa = $costo_cassa + risul_query($costi_cassa, $num2, 'val_costo');
                        }
                        if ($costo_cassa) {
                            esegui_query("update {$tablecosti} set val_costo = '{$costo_cassa}' where idcosti = '0' ");
                        }
                        unset($cassa_prec);
                        $costi_non_importati = esegui_query("select * from {$tablecosti_prec} where tipo_costo is not NULL order by idcosti");
                        $num_costi_non_importati = numlin_query($costi_non_importati);
                        for ($num1 = 0; $num1 < $num_costi_non_importati; $num1++) {
                            $tipo_costo = risul_query($costi_non_importati, $num1, 'tipo_costo');
                            $val_costo = risul_query($costi_non_importati, $num1, 'val_costo');
                            $utente_costo = risul_query($costi_non_importati, $num1, 'utente_inserimento');
                            if ($tipo_costo == "e") {
                                $cassa_prec[$utente_costo] = $cassa_prec[$utente_costo] + (double) $val_costo;
                            } else {
                                $cassa_prec[$utente_costo] = $cassa_prec[$utente_costo] - (double) $val_costo;
                            }
                        }
                        # fine for $num1
                        if (@is_array($cassa_prec)) {
                            $datainserimento = date("Y-m-d H:i:s", time() + C_DIFF_ORE * 3600);
                            reset($cassa_prec);
                            while (list($utente_costo, $val_costo) = each($cassa_prec)) {
                                $idcosti_corr++;
                                esegui_query("insert into {$tablecosti} (idcosti,nome_costo,val_costo,persona_costo,tipo_costo,datainserimento,hostinserimento,utente_inserimento) values ('{$idcosti_corr}','{$anno_prec}','{$val_costo}','','e','{$datainserimento}','{$HOSTNAME}','{$utente_costo}') ");
                            }
                            # fine (list($utente_costo,$val_costo) = each($cassa_prec))
                        }
                        # fine if (@is_array($cassa_prec))
                        # aggiorno i messaggi con prenotazioni del nuovo anno già inserite, quelli da inserire sono aggiornati con i modelli internet
                        $messaggi_importati = esegui_query("select * from {$tablemessaggi} where stato = 'ins' and dati_messaggio18 = '{$anno_prec}' ");
                        $num_messaggi_importati = numlin_query($messaggi_importati);
                        for ($num1 = 0; $num1 < $num_messaggi_importati; $num1++) {
                            $agg_mess = 1;
                            $n_lista_pren = "";
                            $lista_pren = explode(",", risul_query($messaggi_importati, $num1, 'dati_messaggio1'));
                            for ($num2 = 0; $num2 < count($lista_pren); $num2++) {
                                if ($nuovo_idprenota[$lista_pren[$num2]]) {
                                    $n_lista_pren .= $nuovo_idprenota[$lista_pren[$num2]] . ",";
                                } else {
                                    $agg_mess = 0;
                                }
                            }
                            # fine for $num2
                            if ($agg_mess) {
                                $idmess = risul_query($messaggi_importati, $num1, 'idmessaggi');
                                $n_lista_pren = substr($n_lista_pren, 0, -1);
                                esegui_query("update {$tablemessaggi} set dati_messaggio1 = '{$n_lista_pren}', dati_messaggio18 = '{$anno}' where idmessaggi = '{$idmess}' ");
                            }
                            # fine if ($agg_mess)
                        }
                        # fine for $num1
                        # aggiorno i numeri delle prenotazioni importate nei nomi dei documenti già creati nel nuovo anno
                        $dirs_salva = esegui_query("select * from {$tablecontratti} where tipo = 'dir'");
                        $num_dirs_salva = numlin_query($dirs_salva);
                        if ($num_dirs_salva) {
                            unset($contr_salva_in);
                            $max_contr = esegui_query("select max(numero) from {$tablecontratti} where tipo {$LIKE} 'contr%'");
                            $max_contr = risul_query($max_contr, 0, 0);
                            if (defined("C_CARTELLA_CREA_MODELLI") and C_CARTELLA_CREA_MODELLI != "") {
                                if (C_CARTELLA_DOC != "" and @is_dir(C_CARTELLA_CREA_MODELLI . "/" . C_CARTELLA_DOC)) {
                                    $dir_salva_home = C_CARTELLA_DOC;
                                } else {
                                    $dir_salva_home = "";
                                }
                            } else {
                                $dir_salva_home = C_DATA_PATH;
                            }
                            $utenti = esegui_query("select * from " . $PHPR_TAB_PRE . "utenti order by idutenti");
                            $num_utenti = numlin_query($utenti);
                            unset($nomi_contr_ut);
                            $parola_documento = mex("documento", 'visualizza_contratto.php');
                            for ($num1 = 0; $num1 < $num_utenti; $num1++) {
                                $idutente_contr = risul_query($utenti, $num1, 'idutenti');
                                for ($num2 = 1; $num2 <= $max_contr; $num2++) {
                                    $nomi_contr_ut[$idutente_contr][$num2] = $parola_documento . $num2;
                                }
                                $nomi_contratti = esegui_query("select valpersonalizza from {$tablepersonalizza} where idpersonalizza = 'nomi_contratti' and idutente = '{$idutente_contr}'");
                                $nomi_contratti = risul_query($nomi_contratti, 0, 'valpersonalizza');
                                $nomi_contratti = explode("#@&", $nomi_contratti);
                                $num_nomi_contratti = count($nomi_contratti);
                                for ($num2 = 0; $num2 < $num_nomi_contratti; $num2++) {
                                    $dati_nome_contratto = explode("#?&", $nomi_contratti[$num2]);
                                    $nomi_contr_ut[$idutente_contr][$dati_nome_contratto[0]] = $dati_nome_contratto[1];
                                }
                                # fine for $num2
                            }
                            # fine for $num1
                            unset($prefissi_contr);
                            for ($num1 = 0; $num1 < $num_dirs_salva; $num1++) {
                                $dir_salva = risul_query($dirs_salva, 0, 'testo');
                                if ($dir_salva == "~") {
                                    $dir_salva = $dir_salva_home;
                                }
                                if (defined('C_CARTELLA_CREA_MODELLI') and C_CARTELLA_CREA_MODELLI != "") {
                                    $dir_salva = C_CARTELLA_CREA_MODELLI . "/" . str_replace("..", "", $dir_salva);
                                }
                                if (!@is_dir($dir_salva)) {
                                    $dir_salva = "";
                                }
                                $num_contr = risul_query($dirs_salva, 0, 'numero');
                                $tipo_contratto = esegui_query("select tipo from " . $PHPR_TAB_PRE . "contratti where numero = '{$num_contr}' and tipo {$LIKE} 'contr%' ");
                                $tipo_contratto = risul_query($tipo_contratto, 0, 'tipo');
                                $suff_file = "html";
                                if ($tipo_contratto == "contrrtf") {
                                    $suff_file = "rtf";
                                }
                                if ($tipo_contratto == "contrtxt") {
                                    $suff_file = "txt";
                                }
                                $filelock_contr = fopen($dir_salva . "/crea_contr.lock", "w+");
                                flock($filelock_contr, 2);
                                for ($num2 = 0; $num2 < $num_utenti; $num2++) {
                                    $idutente_contr = risul_query($utenti, $num1, 'idutenti');
                                    if (!$prefissi_contr[$dir_salva . "/" . $nomi_contr_ut[$idutente_contr][$num_contr]]) {
                                        $nome_contratto = $nomi_contr_ut[$idutente_contr][$num_contr];
                                        $prefissi_contr[$dir_salva . "/" . $nome_contratto] = 1;
                                        $contr_dir = opendir($dir_salva . "/");
                                        while ($contr_corr = readdir($contr_dir)) {
                                            if ($contr_corr != "." and $contr_corr != ".." and is_file($dir_salva . "/" . $contr_corr)) {
                                                if (substr($contr_corr, 0, strlen($nome_contratto)) == $nome_contratto) {
                                                    $resto_nome_contr = substr($contr_corr, strlen($nome_contratto));
                                                    if (substr($resto_nome_contr, 0, 6) == "_{$anno}" . "_") {
                                                        if (preg_replace("/_[0-9]{4,4}_[0-9]{5,5}(_[0-9]+(-[0-9]+)?)*\\.{$suff_file}/", "", $resto_nome_contr) == "") {
                                                            $num_pren_esist = substr($resto_nome_contr, 12);
                                                            $num_pren_esist = substr($num_pren_esist, 0, -1 * (strlen($suff_file) + 1));
                                                            if ($num_pren_esist) {
                                                                $agg_contr = 1;
                                                                $n_lista_pren = "";
                                                                $num_pren_esist = explode("_", $num_pren_esist);
                                                                for ($num3 = 0; $num3 < count($num_pren_esist); $num3++) {
                                                                    $num_pren_esist2 = explode("-", $num_pren_esist[$num3]);
                                                                    $fine_for = $num_pren_esist2[count($num_pren_esist2) - 1];
                                                                    for ($num4 = $num_pren_esist2[0]; $num4 <= $fine_for; $num4++) {
                                                                        if (!$nuovo_idprenota[$num4]) {
                                                                            $agg_contr = 0;
                                                                            break;
                                                                        }
                                                                        # fine if (!$nuovo_idprenota[$num4])
                                                                        if ($num4 == $num_pren_esist2[0]) {
                                                                            $n_lista_pren .= "_" . $nuovo_idprenota[$num4];
                                                                        } elseif ($num4 == $fine_for) {
                                                                            $n_lista_pren .= "-" . $nuovo_idprenota[$num4];
                                                                        }
                                                                    }
                                                                    # fine for $num4
                                                                }
                                                                # fine for $num3
                                                                if ($agg_contr) {
                                                                    $n_nome_contr = $nome_contratto . substr($resto_nome_contr, 0, 11) . $n_lista_pren . ".{$suff_file}";
                                                                    rename($dir_salva . "/" . $contr_corr, $dir_salva . "/" . $n_nome_contr);
                                                                }
                                                                # fine if ($agg_contr)
                                                            }
                                                            # fine if ($num_pren_esist)
                                                        }
                                                        # fine if (preg_replace("/_[0-9]{4,4}_[0-9]{5,5}\.$suff_file/","",$resto_nome_contr) == "")
                                                    }
                                                    # fine if (substr($resto_nome_contr,0,6) == "_$anno"."_")
                                                }
                                                # fine if (substr($contr_corr,0,strlen($nome_contratto)) == $nome_contratto)
                                            }
                                            # fine if ($contr_corr != "." and $contr_corr != ".." and...
                                        }
                                        # fine while ($fattura_corr = readdir($fatture_dir))
                                        closedir($contr_dir);
                                    }
                                    # fine if (!$prefissi_contr[$dir_salva."/".$nomi_contr_ut[$idutente_contr][$num_contr]])
                                }
                                # fine for $num2
                                flock($filelock_contr, 3);
                                fclose($filelock_contr);
                                unlink($dir_salva . "/crea_contr.lock");
                            }
                            # fine for $num1
                        }
                        # fine if ($num_dirs_salva)
                    }
                    # fine else if ($num_periodo_interferenza == 0)
                    $colonne = "idntariffe,nomecostoagg,tipo_ca,valore_ca,valore_perc_ca,arrotonda_ca,tasseperc_ca,associasett_ca,numsett_ca,moltiplica_ca,periodipermessi_ca,beniinv_ca,appincompatibili_ca,variazione_ca,mostra_ca,categoria_ca,letto_ca,numlimite_ca,regoleassegna_ca,utente_inserimento";
                    for ($num1 = 1; $num1 <= $num_tariffe_tab; $num1++) {
                        $nome_nuova_tariffa = "tariffa" . $num1;
                        $colonne .= ",{$nome_nuova_tariffa}";
                    }
                    # fine for $num1
                    esegui_query("insert into {$tablenometariffe} ({$colonne}) select {$colonne} from {$tablenometariffe_prec}");
                    $costi_agg_importati = esegui_query("select * from {$tablenometariffe} where idntariffe > 10 ");
                    $num_costi_agg_importati = numlin_query($costi_agg_importati);
                    for ($num1 = 0; $num1 < $num_costi_agg_importati; $num1++) {
                        $idntariffe = risul_query($costi_agg_importati, $num1, 'idntariffe');
                        $periodipermessi = risul_query($costi_agg_importati, $num1, 'periodipermessi_ca');
                        if ($periodipermessi) {
                            $pp_nuovi = substr($periodipermessi, 0, 1);
                            $periodipermessi = explode(",", substr($periodipermessi, 1));
                            for ($num2 = 0; $num2 < count($periodipermessi); $num2++) {
                                $id_data_fine_pp = explode("-", $periodipermessi[$num2]);
                                $id_data_inizio_pp = $id_data_fine_pp[0];
                                $id_data_fine_pp = $id_data_fine_pp[1];
                                if ($id_data_fine_pp >= $id_data_ini_periodi_prec and $id_data_inizio_pp <= $id_data_fine_periodi_prec) {
                                    if ($id_data_inizio_pp < $id_data_ini_periodi_prec) {
                                        $id_data_inizio_pp = $id_data_ini_periodi_prec;
                                    }
                                    if ($id_data_fine_pp > $id_data_fine_periodi_prec) {
                                        $id_data_fine_pp = $id_data_fine_periodi_prec;
                                    }
                                    $id_data_inizio_pp = $id_data_inizio_pp - $id_data_ini_periodi_prec + 1;
                                    $id_data_fine_pp = $id_data_fine_pp - $id_data_ini_periodi_prec + 1;
                                    $pp_nuovi .= $id_data_inizio_pp . "-" . $id_data_fine_pp . ",";
                                }
                                # fine if ($id_data_fine_pp >= $id_data_ini_periodi_prec and...
                            }
                            # fine for $num2
                            if (strlen($pp_nuovi) > 1) {
                                $pp_nuovi = substr($pp_nuovi, 0, -1);
                            }
                            esegui_query("update {$tablenometariffe} set periodipermessi_ca = '{$pp_nuovi}' where idntariffe = '{$idntariffe}'");
                        }
                        # fine if ($periodipermessi)
                    }
                    # fine for $num1
                    esegui_query("insert into {$tableregole} select {$col_tableregole} from {$tableregole_prec} where tariffa_per_app != ''");
                    esegui_query("insert into {$tableregole} select {$col_tableregole} from {$tableregole_prec} where tariffa_per_utente != ''");
                    esegui_query("insert into {$tableregole} select {$col_tableregole} from {$tableregole_prec} where tariffa_per_persone != ''");
                    esegui_query("insert into {$tableregole} select {$col_tableregole} from {$tableregole_prec} where tariffa_commissioni is not NULL and iddatainizio is NULL ");
                    $privilegi_prec = esegui_query("select * from {$tableprivilegi} where anno = '{$anno_prec}'");
                    for ($num1 = 0; $num1 < numlin_query($privilegi_prec); $num1++) {
                        $idutente_p = risul_query($privilegi_prec, $num1, 'idutente');
                        $regole1_consentite_p = risul_query($privilegi_prec, $num1, 'regole1_consentite');
                        $tariffe_consentite_p = risul_query($privilegi_prec, $num1, 'tariffe_consentite');
                        $costi_agg_consentiti_p = risul_query($privilegi_prec, $num1, 'costi_agg_consentiti');
                        $contratti_consentiti_p = risul_query($privilegi_prec, $num1, 'contratti_consentiti');
                        $cassa_pagamenti_p = aggslashdb(risul_query($privilegi_prec, $num1, 'cassa_pagamenti'));
                        $priv_ins_prenota_p = risul_query($privilegi_prec, $num1, 'priv_ins_prenota');
                        $priv_mod_prenota_p = risul_query($privilegi_prec, $num1, 'priv_mod_prenota');
                        $priv_mod_pers_p = risul_query($privilegi_prec, $num1, 'priv_mod_pers');
                        $priv_ins_clienti_p = risul_query($privilegi_prec, $num1, 'priv_ins_clienti');
                        $prefisso_clienti_p = risul_query($privilegi_prec, $num1, 'prefisso_clienti');
                        $priv_ins_costi_p = risul_query($privilegi_prec, $num1, 'priv_ins_costi');
                        $priv_vedi_tab_p = risul_query($privilegi_prec, $num1, 'priv_vedi_tab');
                        $priv_ins_tariffe_p = risul_query($privilegi_prec, $num1, 'priv_ins_tariffe');
                        $priv_ins_regole_p = risul_query($privilegi_prec, $num1, 'priv_ins_regole');
                        esegui_query("insert into {$tableprivilegi} (idutente,anno,regole1_consentite,tariffe_consentite,costi_agg_consentiti,contratti_consentiti,cassa_pagamenti,priv_ins_prenota,priv_mod_prenota,priv_mod_pers,priv_ins_clienti,prefisso_clienti,priv_ins_costi,priv_vedi_tab,priv_ins_tariffe,priv_ins_regole) values ('{$idutente_p}','{$anno}','{$regole1_consentite_p}','{$tariffe_consentite_p}','{$costi_agg_consentiti_p}','{$contratti_consentiti_p}','{$cassa_pagamenti_p}','{$priv_ins_prenota_p}','{$priv_mod_prenota_p}','{$priv_mod_pers_p}','{$priv_ins_clienti_p}','{$prefisso_clienti_p}','{$priv_ins_costi_p}','{$priv_vedi_tab_p}','{$priv_ins_tariffe_p}','{$priv_ins_regole_p}')");
                        $lingua_mex = $lingua[$idutente_p];
                        crea_menu_date(C_DATA_PATH . "/selectperiodi{$anno}.1.php", C_DATA_PATH . "/selectperiodi{$anno}.{$idutente_p}.php", $tipo_periodi);
                        if (@is_file(C_DATA_PATH . "/selperiodimenu" . ($anno - 1) . ".{$idutente_p}.php")) {
                            estendi_menu_date(C_DATA_PATH . "/selperiodimenu" . ($anno - 1) . ".{$idutente_p}.php", C_DATA_PATH . "/selperiodimenu{$anno}.{$idutente_p}.php", $tipo_periodi, date("Y-m-d", mktime(0, 0, 0, $mese_ini, 1, $anno)), $data_ini_agg, date("Y-m-d", mktime(0, 0, 0, $mese_fine + 1, 1, $anno)), $anno, $pag);
                        } else {
                            copy(C_DATA_PATH . "/selectperiodi{$anno}.{$idutente_p}.php", C_DATA_PATH . "/selperiodimenu{$anno}.{$idutente_p}.php");
                        }
                        $lingua_mex = $lingua[1];
                        $giorno_vedi_ini_sett = esegui_query("select valpersonalizza_num from {$tablepersonalizza} where idpersonalizza = 'giorno_vedi_ini_sett{$anno_prec}' and idutente = '{$idutente_p}'");
                        if (numlin_query($giorno_vedi_ini_sett) == 1 and $tipo_periodi == "g") {
                            esegui_query("insert into {$tablepersonalizza} (idpersonalizza,valpersonalizza_num,idutente) values ('giorno_vedi_ini_sett{$anno}','" . risul_query($giorno_vedi_ini_sett, 0, "valpersonalizza_num") . "','{$idutente_p}')");
                        }
                    }
                    # fine for $num1
                    $giorno_vedi_ini_sett = esegui_query("select valpersonalizza_num from {$tablepersonalizza} where idpersonalizza = 'giorno_vedi_ini_sett{$anno_prec}' and idutente = '1'");
                    if (numlin_query($giorno_vedi_ini_sett) == 1 and $tipo_periodi == "g") {
                        esegui_query("insert into {$tablepersonalizza} (idpersonalizza,valpersonalizza_num,idutente) values ('giorno_vedi_ini_sett{$anno}','" . risul_query($giorno_vedi_ini_sett, 0, "valpersonalizza_num") . "','1')");
                    }
                    $inserisci_in_ntariffe = "NO";
                }
                # fine if ($importa_anno_prec == "SI")
                if ($inserisci_in_ntariffe != "NO") {
                    # rigo 1: nomi tariffe; 2-3: caparra (% e arrotondo).
                    for ($numtariffe = 1; $numtariffe <= 6; $numtariffe = $numtariffe + 1) {
                        esegui_query("insert into {$tablenometariffe} (idntariffe) values ('{$numtariffe}')");
                    }
                    # fine for $numtariffe
                    esegui_query("update {$tablenometariffe} set nomecostoagg = '8' where idntariffe = '1'");
                    esegui_query("update {$tablenometariffe} set numlimite_ca = '11' where idntariffe = '1'");
                }
                # fine if ($inserisci_in_ntariffe != "NO")
                esegui_query("delete from {$tablerelclienti} where tipo = 'cc' {$lista_clienti_importati}");
                unlock_tabelle($tabelle_lock);
                if ($silenzio != "SI") {
                    echo "<br> " . mex("Anno ", $pag) . $anno . mex(" creato", $pag) . "! <br><br>";
                }
                if ($importa_anno_prec == "SI" and C_RESTRIZIONI_DEMO_ADMIN != "SI") {
                    if ($silenzio != "SI") {
                        $silenzio_mod = "SI";
                    } else {
                        $silenzio_mod = "totale";
                    }
                    global $anno_modello_presente, $num_periodi_date, $modello_esistente, $cambia_frasi, $lingua_modello, $percorso_cartella_modello, $nome_file;
                    $pag_orig = $pag;
                    $pag = "crea_modelli.php";
                    include "./includes/templates/funzioni_modelli.php";
                    $modello_esistente = "SI";
                    $cambia_frasi = "NO";
                    $anno_modello = $anno;
                    include "./includes/templates/frasi_mod_disp.php";
                    include "./includes/templates/funzioni_mod_disp.php";
                    for ($num_cart = 0; $num_cart < $num_perc_cart_mod_vett; $num_cart++) {
                        $percorso_cartella_modello = $perc_cart_mod_vett[$num_cart];
                        if (@is_file("{$percorso_cartella_modello}/mdl_disponibilita.php")) {
                            $lingua_modello = "ita";
                            $nome_file = mex2("mdl_disponibilita", $pag, $lingua_modello) . ".php";
                            $num_periodi_date = "";
                            recupera_var_modello_disponibilita($nome_file, $percorso_cartella_modello, $pag, $fr_frase, $num_frasi, $var_mod, $num_var_mod, $tipo_periodi, "SI", $anno_modello, $PHPR_TAB_PRE);
                            if ($anno_modello_presente == $anno_prec) {
                                aggiorna_var_anno_modello_disponibilita($id_data_ini_periodi_prec, $tableperiodi_prec, $tableperiodi, $tabletransazioniweb, $tablemessaggi, $tipo_periodi);
                                crea_modello_disponibilita($percorso_cartella_modello, $anno_modello, $PHPR_TAB_PRE, $pag, $lingua_modello, $silenzio_mod, $fr_frase, $frase, $num_frasi, $tipo_periodi);
                            }
                            # fine if ($anno_modello_presente == $anno_prec)
                        }
                        # fine if (@is_file("$percorso_cartella_modello/modello_disponibilita.php"))
                    }
                    # fine for $num_cart
                    $lang_dir = opendir("./includes/lang/");
                    include C_DATA_PATH . "/lingua.php";
                    while ($ini_lingua = readdir($lang_dir)) {
                        if ($ini_lingua != "." && $ini_lingua != "..") {
                            $nome_file = mex2("mdl_disponibilita", $pag, $ini_lingua) . ".php";
                            for ($num_cart = 0; $num_cart < $num_perc_cart_mod_vett; $num_cart++) {
                                $percorso_cartella_modello = $perc_cart_mod_vett[$num_cart];
                                if (@is_file("{$percorso_cartella_modello}/{$nome_file}")) {
                                    $lingua_modello = $ini_lingua;
                                    $num_periodi_date = "";
                                    recupera_var_modello_disponibilita($nome_file, $percorso_cartella_modello, $pag, $fr_frase, $num_frasi, $var_mod, $num_var_mod, $tipo_periodi, "SI", $anno_modello, $PHPR_TAB_PRE);
                                    if ($anno_modello_presente == $anno_prec) {
                                        aggiorna_var_anno_modello_disponibilita($id_data_ini_periodi_prec, $tableperiodi_prec, $tableperiodi, $tabletransazioniweb, $tablemessaggi, $tipo_periodi);
                                        crea_modello_disponibilita($percorso_cartella_modello, $anno_modello, $PHPR_TAB_PRE, $pag, $lingua_modello, $silenzio_mod, $fr_frase, $frase, $num_frasi, $tipo_periodi);
                                    }
                                    # fine if ($anno_modello_presente == $anno_prec)
                                }
                                # fine if (@is_file("$percorso_cartella_modello/$nome_file"))
                            }
                            # fine for $num_cart
                        }
                        # fine if ($file != "." && $file != "..")
                    }
                    # fine while ($file = readdir($lang_dig))
                    closedir($lang_dir);
                    $templates_dir = opendir("./includes/templates/");
                    while ($modello_ext = readdir($templates_dir)) {
                        if ($modello_ext != "." and $modello_ext != ".." and @is_dir("./includes/templates/{$modello_ext}")) {
                            include "./includes/templates/{$modello_ext}/name.php";
                            include "./includes/templates/{$modello_ext}/phrases.php";
                            include "./includes/templates/{$modello_ext}/functions.php";
                            $funz_recupera_var_modello = "recupera_var_modello_" . $modello_ext;
                            $funz_crea_modello = "crea_modello_" . $modello_ext;
                            $funz_aggiorna_var_anno_modello = "aggiorna_var_anno_modello_" . $modello_ext;
                            if ($template_file_name["ita"]) {
                                $nome_file = $template_file_name["ita"];
                            } else {
                                $nome_file = "ita_" . $template_file_name["en"];
                            }
                            for ($num_cart = 0; $num_cart < $num_perc_cart_mod_vett; $num_cart++) {
                                $percorso_cartella_modello = $perc_cart_mod_vett[$num_cart];
                                if (@is_file("{$percorso_cartella_modello}/{$nome_file}")) {
                                    $lingua_modello = "ita";
                                    $num_periodi_date = "";
                                    $funz_recupera_var_modello($nome_file, $percorso_cartella_modello, $pag, $fr_frase, $num_frasi, $var_mod, $num_var_mod, $tipo_periodi, "SI", $anno_modello, $PHPR_TAB_PRE);
                                    if ($anno_modello_presente == $anno_prec) {
                                        $funz_aggiorna_var_anno_modello($id_data_ini_periodi_prec, $tableperiodi_prec, $tableperiodi, $tabletransazioniweb, $tablemessaggi, $tipo_periodi);
                                        $funz_crea_modello($percorso_cartella_modello, $anno_modello, $PHPR_TAB_PRE, $pag, $lingua_modello, $silenzio_mod, $fr_frase, $frase, $num_frasi, $tipo_periodi);
                                    }
                                    # fine if ($anno_modello_presente == $anno_prec)
                                }
                                # fine if (@is_file("$percorso_cartella_modello/$nome_file"))
                            }
                            # fine for $num_cart
                            $lang_dir = opendir("./includes/lang/");
                            while ($ini_lingua = readdir($lang_dir)) {
                                if ($ini_lingua != "." && $ini_lingua != "..") {
                                    if ($template_file_name[$ini_lingua]) {
                                        $nome_file = $template_file_name[$ini_lingua];
                                    } else {
                                        $nome_file = $ini_lingua . "_" . $template_file_name["en"];
                                    }
                                    for ($num_cart = 0; $num_cart < $num_perc_cart_mod_vett; $num_cart++) {
                                        $percorso_cartella_modello = $perc_cart_mod_vett[$num_cart];
                                        if (@is_file("{$percorso_cartella_modello}/{$nome_file}")) {
                                            $lingua_modello = $ini_lingua;
                                            $num_periodi_date = "";
                                            $funz_recupera_var_modello($nome_file, $percorso_cartella_modello, $pag, $fr_frase, $num_frasi, $var_mod, $num_var_mod, $tipo_periodi, "SI", $anno_modello, $PHPR_TAB_PRE);
                                            if ($anno_modello_presente == $anno_prec) {
                                                $funz_aggiorna_var_anno_modello($id_data_ini_periodi_prec, $tableperiodi_prec, $tableperiodi, $tabletransazioniweb, $tablemessaggi, $tipo_periodi);
                                                $funz_crea_modello($percorso_cartella_modello, $anno_modello, $PHPR_TAB_PRE, $pag, $lingua_modello, $silenzio_mod, $fr_frase, $frase, $num_frasi, $tipo_periodi);
                                            }
                                            # fine if ($anno_modello_presente == $anno_prec)
                                        }
                                        # fine if (@is_file("$percorso_cartella_modello/$nome_file"))
                                    }
                                    # fine for $num_cart
                                }
                                # fine if ($file != "." && $file != "..")
                            }
                            # fine while ($file = readdir($lang_dir))
                            closedir($lang_dir);
                        }
                        # fine if ($modello_ext != "." and $modello_ext != ".." and...
                    }
                    # fine while ($file = readdir($lang_dig))
                    closedir($templates_dir);
                    $pag = $pag_orig;
                    if ($silenzio != "SI") {
                        echo "<br>";
                    }
                }
                # fine if ($importa_anno_prec == "SI" and C_RESTRIZIONI_DEMO_ADMIN != "SI")
            } else {
                if ($silenzio != "SI") {
                    echo mex("Non ho i permessi per creare nuove tabelle nel database", $pag) . ".<br>";
                }
            }
        } else {
            if ($silenzio != "SI") {
                echo mex("Anno già creato", $pag) . ".<br>";
            }
        }
        flock($filelock, 3);
        fclose($filelock);
        unlink(C_DATA_PATH . "/anni.lock");
    } else {
        if ($silenzio != "SI") {
            echo mex("Non ho i permessi di scrittura sulla cartella data", $pag) . ".<br>";
        }
    }
    $lingua_mex = $lingua_mex_orig;
}
Example #2
0
 unset($password_phpr);
 $id_utente = controlla_login($numconnessione, $PHPR_TAB_PRE, $id_sessione, $nome_utente_phpr, $password_phpr, $anno);
 if ($id_utente and $id_utente == 1) {
     $show_bar = "NO";
     if ($tema[$id_utente] and $tema[$id_utente] != "base" and @is_dir("./themes/" . $tema[$id_utente] . "/php")) {
         include "./themes/" . $tema[$id_utente] . "/php/head.php";
     } else {
         include "./includes/head.php";
     }
     if (C_UTILIZZA_SEMPRE_DEFAULTS == "AUTO") {
         $creabase = 1;
     }
     if ($creabase and !@is_file(C_DATA_PATH . "/dati_connessione.php")) {
         $mostra_form_iniziale = "NO";
         $insappartamenti = "";
         allunga_tempo_limite();
         if ($tipo_db == "mysql" and @function_exists('mysqli_connect')) {
             $tipo_db = "mysqli";
         }
         $carica_estensione == "NO";
         if ($tipo_db == "postgresql" and !@function_exists('pg_connect') or $tipo_db == "mysql" and !@function_exists('mysql_connect')) {
             $carica_estensione == "SI";
         }
         if ($tipo_db == "sqlite") {
             if (!@class_exists('SQLite3')) {
                 $carica_estensione == "SI";
             }
         }
         # fine if ($tipo_db == "sqlite")
         if (C_UTILIZZA_SEMPRE_DEFAULTS == "SI" or C_UTILIZZA_SEMPRE_DEFAULTS == "AUTO") {
             $tipo_db = C_CREADB_TIPODB;
function ripristina_backup($file, $silenzio, $pag, &$numconnessione, $database_esistente, $tempdatabase, $PHPR_DB_TYPE, $PHPR_DB_NAME, $PHPR_DB_HOST, $PHPR_DB_PORT, $PHPR_DB_USER, $PHPR_DB_PASS, $PHPR_LOAD_EXT, $PHPR_TAB_PRE, $N_PHPR_DB_TYPE, $N_PHPR_DB_NAME, $N_PHPR_DB_HOST, $N_PHPR_DB_PORT, $N_PHPR_DB_USER, $N_PHPR_DB_PASS, $N_PHPR_LOAD_EXT, $N_PHPR_TAB_PRE, $ext_pgsql_caricata, $ext_mysql_caricata, $mantieni_anni = "")
{
    $tableanni = $PHPR_TAB_PRE . "anni";
    $tableutenti = $PHPR_TAB_PRE . "utenti";
    include "./includes/variabili_contratto.php";
    unset($var_predef);
    allunga_tempo_limite();
    global $LIKE, $MEDIUMTEXT, $ext_sqlite_caricata;
    $fatto = "NO";
    if (C_CREA_NUOVI_APP == "NO") {
        $num_appartamenti_prec = esegui_query("select idappartamenti from " . $PHPR_TAB_PRE . "appartamenti");
        $num_appartamenti_prec = numlin_query($num_appartamenti_prec);
    } elseif (defined("C_MASSIMO_NUM_APP") and C_MASSIMO_NUM_APP != 0) {
        $num_appartamenti_prec = C_MASSIMO_NUM_APP;
    }
    if (C_CAMBIA_TIPO_PERIODI == "NO") {
        unset($tipo_periodi_prec);
        $anni = esegui_query("select * from {$tableanni} order by idanni");
        for ($num1 = 0; $num1 < numlin_query($anni); $num1++) {
            $ultimo_anno_prec = risul_query($anni, $num1, 'idanni');
            $tipo_periodi_prec[$ultimo_anno_prec] = risul_query($anni, $num1, 'tipo_periodi');
        }
        # fine for $num1
    }
    # fine if (C_CAMBIA_TIPO_PERIODI == "NO")
    # Prima lettura di controllo del file
    $file_coerente = "SI";
    $num_err = "";
    $ultima_linea = "";
    $fbackup = fopen($file, "r");
    if ($fbackup) {
        $leggendo_righe = "NO";
        while (!feof($fbackup)) {
            unset($linee_backup);
            $linee_backup = fread($fbackup, 524288);
            $linee_backup = explode("\n", $linee_backup);
            $num_linee_backup = count($linee_backup) - 1;
            $linee_backup[0] = $ultima_linea . $linee_backup[0];
            if (!feof($fbackup)) {
                $ultima_linea = $linee_backup[$num_linee_backup];
            } else {
                $num_linee_backup++;
            }
            for ($num1 = 0; $num1 < $num_linee_backup; $num1++) {
                $linea = togli_acapo($linee_backup[$num1]);
                if ($linea == "</backup>" and $leggendo_righe != "SI") {
                    $leggendo_backup = "NO";
                }
                if ($leggendo_backup == "SI") {
                    if (substr($linea, 0, 5) == "<log>" and substr($linea, -6) == "</log>") {
                        $phpr_log = substr($linea, 5, -6);
                    }
                    if ($linea == "</database>" and $leggendo_righe != "SI") {
                        $leggendo_database = "NO";
                    }
                    if ($leggendo_database == "SI") {
                        if ($linea == "</tabella>" and $leggendo_righe != "SI") {
                            $leggendo_tabella = "NO";
                        }
                        if ($leggendo_tabella == "SI") {
                            if (substr($linea, 0, 13) == "<nometabella>") {
                                $nome_tabella = substr($linea, 13);
                                $nome_tabella = substr($nome_tabella, 0, -14);
                            }
                            # fine if (substr($linea,0,13) == "<nometabella>")
                            if ($linea == "</colonnetabella>" and $leggendo_righe != "SI") {
                                $leggendo_colonne == "NO";
                                $anno_ins = "";
                                if ($nome_tabella == "clienti") {
                                    $tab_presente['clienti'] = "SI";
                                }
                                if ($nome_tabella == "relclienti") {
                                    $tab_presente['relclienti'] = "SI";
                                }
                                if ($nome_tabella == "anni") {
                                    $tab_presente['anni'] = "SI";
                                }
                                if ($nome_tabella == "versioni") {
                                    $tab_presente['versioni'] = "SI";
                                }
                                if ($nome_tabella == "nazioni") {
                                    $tab_presente['nazioni'] = "SI";
                                }
                                if ($nome_tabella == "regioni") {
                                    $tab_presente['regioni'] = "SI";
                                }
                                if ($nome_tabella == "citta") {
                                    $tab_presente['citta'] = "SI";
                                }
                                if ($nome_tabella == "documentiid") {
                                    $tab_presente['documentiid'] = "SI";
                                }
                                if ($nome_tabella == "parentele") {
                                    $tab_presente['parentele'] = "SI";
                                }
                                if ($nome_tabella == "personalizza") {
                                    $tab_presente['personalizza'] = "SI";
                                }
                                if ($nome_tabella == "appartamenti") {
                                    $tab_presente['appartamenti'] = "SI";
                                }
                                if ($nome_tabella == "utenti") {
                                    $tab_presente['utenti'] = "SI";
                                }
                                if ($nome_tabella == "gruppi") {
                                    $tab_presente['gruppi'] = "SI";
                                }
                                if ($nome_tabella == "privilegi") {
                                    $tab_presente['privilegi'] = "SI";
                                }
                                if ($nome_tabella == "relutenti") {
                                    $tab_presente['relutenti'] = "SI";
                                }
                                if ($nome_tabella == "relgruppi") {
                                    $tab_presente['relgruppi'] = "SI";
                                }
                                if ($nome_tabella == "sessioni") {
                                    $tab_presente['sessioni'] = "SI";
                                }
                                if ($nome_tabella == "transazioni") {
                                    $tab_presente['transazioni'] = "SI";
                                }
                                if ($nome_tabella == "transazioniweb") {
                                    $tab_presente['transazioniweb'] = "SI";
                                }
                                if ($nome_tabella == "descrizioni") {
                                    $tab_presente['descrizioni'] = "SI";
                                }
                                if ($nome_tabella == "beniinventario") {
                                    $tab_presente['beniinventario'] = "SI";
                                }
                                if ($nome_tabella == "magazzini") {
                                    $tab_presente['magazzini'] = "SI";
                                }
                                if ($nome_tabella == "relinventario") {
                                    $tab_presente['relinventario'] = "SI";
                                }
                                if ($nome_tabella == "casse") {
                                    $tab_presente['casse'] = "SI";
                                }
                                if ($nome_tabella == "contratti") {
                                    $tab_presente['contratti'] = "SI";
                                }
                                if ($nome_tabella == "interconnessioni") {
                                    $tab_presente['interconnessioni'] = "SI";
                                }
                                if ($nome_tabella == "messaggi") {
                                    $tab_presente['messaggi'] = "SI";
                                }
                                if (substr($nome_tabella, 0, 7) == "prenota") {
                                    $anno_ins = substr($nome_tabella, 7);
                                    $tab_presente[$anno_ins]['prenota'] = "SI";
                                }
                                if (substr($nome_tabella, 0, 12) == "costiprenota") {
                                    $anno_ins = substr($nome_tabella, 12);
                                    $tab_presente[$anno_ins]['costiprenota'] = "SI";
                                } else {
                                    if (substr($nome_tabella, 0, 5) == "costi") {
                                        $anno_ins = substr($nome_tabella, 5);
                                        $tab_presente[$anno_ins]['costi'] = "SI";
                                    }
                                }
                                if (substr($nome_tabella, 0, 15) == "rclientiprenota") {
                                    $anno_ins = substr($nome_tabella, 15);
                                    $tab_presente[$anno_ins]['rclientiprenota'] = "SI";
                                }
                                if (substr($nome_tabella, 0, 6) == "regole") {
                                    $anno_ins = substr($nome_tabella, 6);
                                    $tab_presente[$anno_ins]['regole'] = "SI";
                                }
                                if (substr($nome_tabella, 0, 5) == "soldi") {
                                    $anno_ins = substr($nome_tabella, 5);
                                    $tab_presente[$anno_ins]['soldi'] = "SI";
                                }
                                if (substr($nome_tabella, 0, 7) == "periodi") {
                                    $anno_ins = substr($nome_tabella, 7);
                                    $tab_presente[$anno_ins]['periodi'] = "SI";
                                }
                                if (substr($nome_tabella, 0, 8) == "ntariffe") {
                                    $anno_ins = substr($nome_tabella, 8);
                                    $tab_presente[$anno_ins]['ntariffe'] = "SI";
                                }
                                if ($anno_ins and controlla_anno($anno_ins) == "NO") {
                                    $file_coerente = "NO";
                                    $num_err .= "#1";
                                }
                                if ($anno_ins and $tab_anno_esistente[$anno_ins] != "SI") {
                                    $tab_anno_esistente[$anno_ins] = "SI";
                                }
                            }
                            # fine if ($linea == "</colonnetabella>" and $leggendo_righe != "SI")
                            if ($leggendo_colonne == "SI") {
                                if (substr($linea, 0, 13) == "<nomecolonna>") {
                                    $num_colonne++;
                                    $nome_colonna[$num_colonne] = substr($linea, 13);
                                    $nome_colonna[$num_colonne] = substr($nome_colonna[$num_colonne], 0, -14);
                                    $num_colonna[$nome_colonna[$num_colonne]] = $num_colonne - 1;
                                    if (substr($nome_tabella, 0, 7) == "periodi" and substr($nome_colonna[$num_colonne], 0, 7) == "tariffa") {
                                        $lista_tariffe++;
                                    }
                                    if (substr($nome_tabella, 0, 8) == "ntariffe" and substr($nome_colonna[$num_colonne], 0, 7) == "tariffa") {
                                        $lista_tariffe++;
                                    }
                                    if (defined("C_MASSIMO_NUM_TARIFFE") and C_MASSIMO_NUM_TARIFFE != 0 and $lista_tariffe > max(C_MASSIMO_NUM_TARIFFE, 10) * 3) {
                                        $file_coerente = "NO";
                                        $num_err .= "#2";
                                    }
                                }
                                # fine if (substr($linea,0,13) == "<nomecolonna>")
                                if (substr($linea, 0, 13) == "<tipocolonna>") {
                                    $tipo_colonna[$num_colonne] = substr($linea, 13);
                                    $tipo_colonna[$num_colonne] = substr($tipo_colonna[$num_colonne], 0, -14);
                                }
                                # fine if (substr($linea,0,13) == "<tipocolonna>")
                            }
                            # fine if ($leggendo_colonne == "SI")
                            if ($linea == "<colonnetabella>" and $leggendo_righe != "SI") {
                                $leggendo_colonne = "SI";
                                $num_colonne = 0;
                                $lista_tariffe = 0;
                            }
                            # fine if ($linea == "<colonnetabella>" and $leggendo_righe != "SI")
                            if ($linea == "</righetabella>") {
                                $leggendo_righe = "NO";
                            }
                            if ($leggendo_righe == "SI") {
                                if (substr($linea, 0, 6) == "<riga>") {
                                    $riga = substr($linea, 11);
                                } else {
                                    $riga .= "\n" . $linea;
                                }
                                # fine else if (substr($linea,0,6) == "<riga>")
                                if (substr($linea, -7) == "</riga>") {
                                    $riga = substr($riga, 0, -13);
                                    $riga = explode("</cmp><cmp>", $riga);
                                    if ($nome_tabella == "contratti") {
                                        $tipo_contr = $riga[$num_colonna['tipo']];
                                        if (substr($tipo_contr, 0, 3) == "var") {
                                            $nome = $riga[$num_colonna['testo']];
                                            if ($var_riserv[$nome]) {
                                                $file_coerente = "NO";
                                                $num_err .= "#3";
                                            }
                                        }
                                        # fine if (substr($tipo_contr,0,3) == "var")
                                        if (substr($tipo_contr, 0, 4) == "vett") {
                                            $nome = explode(";", $riga[$num_colonna['testo']]);
                                            if ($var_riserv[$nome[0]]) {
                                                $file_coerente = "NO";
                                                $num_err .= "#4";
                                            }
                                            if ($var_riserv[$nome[1]]) {
                                                $file_coerente = "NO";
                                                $num_err .= "#5";
                                            }
                                        }
                                        # fine if (substr($tipo_contr,0,4) == "vett")
                                    }
                                    # fine if ($nome_tabella == "contratti")
                                    unset($valore_colonna);
                                    for ($num2 = 0; $num2 < count($riga); $num2++) {
                                        $valore = aggslashdb($riga[$num2]);
                                        if ($valore != "") {
                                            $valore = str_replace("</righetabella@%&@>", "</righetabella>", $valore);
                                            $valore = str_replace("</riga@%&@>", "</riga>", $valore);
                                            $valore = str_replace("<riga@%&@>", "<riga>", $valore);
                                            $valore = str_replace("</cmp@%&@>", "</cmp>", $valore);
                                            $valore = str_replace("@%&@@%&@", "@%&@", $valore);
                                            $valore_colonna[$nome_colonna[$num2 + 1]] = $valore;
                                        }
                                        # fine if ($valore != "")
                                    }
                                    # fine for $num2
                                    if ((C_CREA_NUOVI_APP == "NO" or defined("C_MASSIMO_NUM_APP") and C_MASSIMO_NUM_APP != 0) and $nome_tabella == "appartamenti" and $linee_inserite_in_tabella[$nome_tabella] >= $num_appartamenti_prec) {
                                        $file_coerente = "NO";
                                        $num_err .= "#6";
                                    }
                                    if ($nome_tabella == "anni") {
                                        $campo_anno_esistente[$valore_colonna['idanni']] = $valore_colonna['tipo_periodi'];
                                    }
                                    if (C_CREA_ANNO_NON_ATTUALE == "NO" and $nome_tabella == "anni" and $valore_colonna['idanni'] < C_PRIMO_ANNO_CREATO) {
                                        $file_coerente = "NO";
                                        $num_err .= "#7";
                                    }
                                    if (defined("C_MASSIMO_NUM_UTENTI") and C_MASSIMO_NUM_UTENTI != 0 and $nome_tabella == "utenti" and $linee_inserite_in_tabella[$nome_tabella] >= C_MASSIMO_NUM_UTENTI) {
                                        $file_coerente = "NO";
                                        $num_err .= "#8";
                                    }
                                    if (defined("C_MASSIMO_NUM_UTENTI") and C_MASSIMO_NUM_UTENTI != 0 and $nome_tabella == "gruppi" and $linee_inserite_in_tabella[$nome_tabella] >= C_MASSIMO_NUM_UTENTI) {
                                        $file_coerente = "NO";
                                        $num_err .= "#9";
                                    }
                                    if (defined("C_MASSIMO_NUM_UTENTI") and C_MASSIMO_NUM_UTENTI != 0 and ($nome_tabella == "sessioni" or $nome_tabella == "transazioni") and $linee_inserite_in_tabella[$nome_tabella] >= C_MASSIMO_NUM_UTENTI * 25) {
                                        $file_coerente = "NO";
                                        $num_err .= "#10";
                                    }
                                    if (defined("C_MASSIMO_NUM_UTENTI") and C_MASSIMO_NUM_UTENTI != 0 and $nome_tabella == "privilegi" and $linee_inserite_in_tabella[$nome_tabella] > C_MASSIMO_NUM_UTENTI * 20) {
                                        $file_coerente = "NO";
                                        $num_err .= "#11";
                                    }
                                    if (defined("C_MASSIMO_NUM_UTENTI") and C_MASSIMO_NUM_UTENTI != 0 and $nome_tabella == "personalizza" and $linee_inserite_in_tabella[$nome_tabella] >= C_MASSIMO_NUM_UTENTI * 50) {
                                        $file_coerente = "NO";
                                        $num_err .= "#12";
                                    }
                                    if (defined("C_MASSIMO_NUM_UTENTI") and C_MASSIMO_NUM_UTENTI != 0 and $nome_tabella == "nazioni" and $linee_inserite_in_tabella[$nome_tabella] > C_MASSIMO_NUM_UTENTI * 3000) {
                                        $file_coerente = "NO";
                                        $num_err .= "#13";
                                    }
                                    if (defined("C_MASSIMO_NUM_UTENTI") and C_MASSIMO_NUM_UTENTI != 0 and $nome_tabella == "regioni" and $linee_inserite_in_tabella[$nome_tabella] > C_MASSIMO_NUM_UTENTI * 3000) {
                                        $file_coerente = "NO";
                                        $num_err .= "#14";
                                    }
                                    if (defined("C_MASSIMO_NUM_UTENTI") and C_MASSIMO_NUM_UTENTI != 0 and $nome_tabella == "citta" and $linee_inserite_in_tabella[$nome_tabella] > C_MASSIMO_NUM_UTENTI * 30000) {
                                        $file_coerente = "NO";
                                        $num_err .= "#15";
                                    }
                                    if (defined("C_MASSIMO_NUM_UTENTI") and C_MASSIMO_NUM_UTENTI != 0 and $nome_tabella == "documentiid" and $linee_inserite_in_tabella[$nome_tabella] > C_MASSIMO_NUM_UTENTI * 2000) {
                                        $file_coerente = "NO";
                                        $num_err .= "#16";
                                    }
                                    if (defined("C_MASSIMO_NUM_UTENTI") and C_MASSIMO_NUM_UTENTI != 0 and $nome_tabella == "parentele" and $linee_inserite_in_tabella[$nome_tabella] > C_MASSIMO_NUM_UTENTI * 1000) {
                                        $file_coerente = "NO";
                                        $num_err .= "#17";
                                    }
                                    if (defined("C_MASSIMO_NUM_UTENTI") and C_MASSIMO_NUM_UTENTI != 0 and $nome_tabella == "relutenti" and $linee_inserite_in_tabella[$nome_tabella] > C_MASSIMO_NUM_UTENTI * 80000) {
                                        $file_coerente = "NO";
                                        $num_err .= "#18";
                                    }
                                    if (defined("C_MASSIMO_NUM_UTENTI") and C_MASSIMO_NUM_UTENTI != 0 and $nome_tabella == "relgruppi" and $linee_inserite_in_tabella[$nome_tabella] > C_MASSIMO_NUM_UTENTI * 8000) {
                                        $file_coerente = "NO";
                                        $num_err .= "#19";
                                    }
                                    if (defined("C_MASSIMO_NUM_CLIENTI") and C_MASSIMO_NUM_CLIENTI != 0 and $nome_tabella == "clienti" and $linee_inserite_in_tabella[$nome_tabella] >= C_MASSIMO_NUM_CLIENTI) {
                                        $file_coerente = "NO";
                                        $num_err .= "#20";
                                    }
                                    if (defined("C_MASSIMO_NUM_CLIENTI") and C_MASSIMO_NUM_CLIENTI != 0 and $nome_tabella == "relclienti" and $linee_inserite_in_tabella[$nome_tabella] >= C_MASSIMO_NUM_CLIENTI * 10) {
                                        $file_coerente = "NO";
                                        $num_err .= "#21";
                                    }
                                    if (defined("C_MASSIMO_NUM_CLIENTI") and C_MASSIMO_NUM_CLIENTI != 0 and $nome_tabella == "transazioniweb" and $linee_inserite_in_tabella[$nome_tabella] >= C_MASSIMO_NUM_CLIENTI) {
                                        $file_coerente = "NO";
                                        $num_err .= "#22";
                                    }
                                    if (defined("C_MASSIMO_NUM_COSTI_AGG") and C_MASSIMO_NUM_COSTI_AGG != 0 and substr($nome_tabella, 0, 8) == "ntariffe" and $linee_inserite_in_tabella[$nome_tabella] >= C_MASSIMO_NUM_COSTI_AGG + 4) {
                                        $file_coerente = "NO";
                                        $num_err .= "#23";
                                    }
                                    if (defined("C_MASSIMO_NUM_TARIFFE") and C_MASSIMO_NUM_TARIFFE != 0 and $nome_tabella == "descrizioni" and $linee_inserite_in_tabella[$nome_tabella] >= C_MASSIMO_NUM_TARIFFE * 50 + 40) {
                                        $file_coerente = "NO";
                                        $num_err .= "#24";
                                    }
                                    if (defined("C_MASSIMO_NUM_TARIFFE") and C_MASSIMO_NUM_TARIFFE != 0 and $nome_tabella == "beniinventario" and $linee_inserite_in_tabella[$nome_tabella] >= C_MASSIMO_NUM_TARIFFE * 10000) {
                                        $file_coerente = "NO";
                                        $num_err .= "#25";
                                    }
                                    if (defined("C_MASSIMO_NUM_TARIFFE") and C_MASSIMO_NUM_TARIFFE != 0 and $nome_tabella == "magazzini" and $linee_inserite_in_tabella[$nome_tabella] >= C_MASSIMO_NUM_TARIFFE * 1000) {
                                        $file_coerente = "NO";
                                        $num_err .= "#26";
                                    }
                                    if (defined("C_MASSIMO_NUM_TARIFFE") and C_MASSIMO_NUM_TARIFFE != 0 and $nome_tabella == "relinventario" and $linee_inserite_in_tabella[$nome_tabella] >= C_MASSIMO_NUM_TARIFFE * 100000) {
                                        $file_coerente = "NO";
                                        $num_err .= "#27";
                                    }
                                    if (defined("C_MASSIMO_NUM_TARIFFE") and C_MASSIMO_NUM_TARIFFE != 0 and $nome_tabella == "casse" and $linee_inserite_in_tabella[$nome_tabella] >= C_MASSIMO_NUM_TARIFFE * 1000) {
                                        $file_coerente = "NO";
                                        $num_err .= "#27.1";
                                    }
                                    if (defined("C_MASSIMO_NUM_CONTRATTI") and C_MASSIMO_NUM_CONTRATTI != 0 and $nome_tabella == "contratti" and $linee_inserite_in_tabella[$nome_tabella] >= C_MASSIMO_NUM_CONTRATTI * 200 + 100) {
                                        $file_coerente = "NO";
                                        $num_err .= "#28";
                                    }
                                    if (defined("C_MASSIMO_NUM_CLIENTI") and C_MASSIMO_NUM_CLIENTI != 0 and $nome_tabella == "interconnessioni" and $linee_inserite_in_tabella[$nome_tabella] >= C_MASSIMO_NUM_CLIENTI * 10) {
                                        $file_coerente = "NO";
                                        $num_err .= "#29";
                                    }
                                    if (defined("C_MASSIMO_NUM_CLIENTI") and C_MASSIMO_NUM_CLIENTI != 0 and $nome_tabella == "messaggi" and $linee_inserite_in_tabella[$nome_tabella] >= C_MASSIMO_NUM_CLIENTI) {
                                        $file_coerente = "NO";
                                        $num_err .= "#30";
                                    }
                                    if (defined("C_MASSIMO_NUM_STORIA_SOLDI") and C_MASSIMO_NUM_STORIA_SOLDI != 0 and substr($nome_tabella, 0, 5) == "soldi" and $linee_inserite_in_tabella[$nome_tabella] >= C_MASSIMO_NUM_STORIA_SOLDI + 1) {
                                        $file_coerente = "NO";
                                        $num_err .= "#31";
                                    }
                                    if (defined("C_MASSIMO_NUM_COSTI") and C_MASSIMO_NUM_COSTI != 0 and substr($nome_tabella, 0, 5) == "costi" and $linee_inserite_in_tabella[$nome_tabella] >= C_MASSIMO_NUM_COSTI) {
                                        $file_coerente = "NO";
                                        $num_err .= "#32";
                                    }
                                    if (substr($nome_tabella, 0, 8) == "ntariffe" and $valore_colonna['idntariffe'] == 1) {
                                        $numero_tariffe[substr($nome_tabella, 8)] = $valore_colonna['nomecostoagg'];
                                    }
                                    if ($nome_tabella == "versioni" and $linee_inserite_in_tabella[$nome_tabella] >= 2) {
                                        $file_coerente = "NO";
                                        $num_err .= "#33";
                                    }
                                    $linee_inserite_in_tabella[$nome_tabella]++;
                                }
                                # fine if (substr($linea,-7) == "</riga>")
                            }
                            # fine if ($leggendo_righe == "SI")
                            if ($linea == "<righetabella>") {
                                $leggendo_righe = "SI";
                                $linee_inserite_in_tabella[$nome_tabella] = 0;
                            }
                            # fine if ($linea == "<righetabella>")
                        }
                        # fine if ($leggendo_tabella == "SI")
                        if ($linea == "<tabella>") {
                            $leggendo_tabella = "SI";
                        }
                    } else {
                        if ($linea == "</file>") {
                            $leggendo_file = "NO";
                        }
                        if ($leggendo_file == "SI") {
                            if ($nome_file) {
                                if ($leggendo_contenuto == "SI") {
                                    if (substr($linea, -12) == "</contenuto>") {
                                        $leggendo_contenuto = "NO";
                                        $leggendo_cont_file_sel = "NO";
                                        $linea = substr($linea, 0, -12);
                                    }
                                    # fine if (substr($linea,-12) == "</contenuto>")
                                    $linea = trim($linea);
                                    if ($leggendo_prima_linea == "SI") {
                                        $prima_linea = $linea;
                                        $leggendo_prima_linea = "NO";
                                    }
                                    # fine if ($leggendo_prima_linea == "SI")
                                    if ($nome_file == "./data/versione.php") {
                                        if ($linea != "" and $linea != "<?php" and $linea != "define(C_VERSIONE_ATTUALE," . C_PHP_VERSION_NUM . ");" and preg_replace("/define\\(C_DIFF_ORE,-?[0-9]{1,2}\\);/", "", $linea) != "" and $linea != "?>") {
                                            $file_coerente = "NO";
                                            $num_err .= "#34";
                                        }
                                    }
                                    # fine if ($nome_file == "./data/versione.php")
                                    if ($nome_file == "./data/selectappartamenti.php") {
                                        if ($linea == "\";") {
                                            $leggendo_cont_file_sel = "NO";
                                        }
                                        if ($leggendo_cont_file_sel != "SI" and $linea != "" and $linea != "<?php" and $linea != "?>" and $linea != "\";" and $linea != "echo \"") {
                                            $file_coerente = "NO";
                                            $num_err .= "#35";
                                        }
                                        if ($leggendo_cont_file_sel == "SI") {
                                            if (str_replace("\\\\", "", $linea) != $linea) {
                                                $file_coerente = "NO";
                                                $num_err .= "#36";
                                            }
                                            $linea = str_replace("\\\"", "", $linea);
                                            if (str_replace("\"", "", $linea) != $linea) {
                                                $file_coerente = "NO";
                                                $num_err .= "#37";
                                            }
                                        }
                                        # fine if ($leggendo_cont_file_sel == "SI")
                                        if ($linea == "echo \"") {
                                            $leggendo_cont_file_sel = "SI";
                                        }
                                    }
                                    # fine if ($nome_file == "./data/selectappartamenti.php")
                                    if (substr($nome_file, 0, 20) == "./data/selectperiodi" or substr($nome_file, 0, 21) == "./data/selperiodimenu") {
                                        if ($linea == "\";") {
                                            $leggendo_cont_file_sel = "NO";
                                        }
                                        if ($leggendo_cont_file_sel != "SI") {
                                            $linea_trovata = "NO";
                                            if ($linea == "") {
                                                $linea_trovata = "SI";
                                            }
                                            if ($linea == "<?php") {
                                                $linea_trovata = "SI";
                                            }
                                            if ($linea == "?>") {
                                                $linea_trovata = "SI";
                                            }
                                            if ($linea == "\";") {
                                                $linea_trovata = "SI";
                                            }
                                            if ($linea == "\$dates_options_list = \"") {
                                                $linea_trovata = "SI";
                                            }
                                            if (preg_replace("/\\\$y_ini_menu\\[[0-9]{1,2}\\] = \"[0-9]{1,4}\";/", "", $linea) == "") {
                                                $linea_trovata = "SI";
                                            }
                                            if (preg_replace("/\\\$m_ini_menu\\[[0-9]{1,2}\\] = \"[0-9]{1,2}\";/", "", $linea) == "") {
                                                $linea_trovata = "SI";
                                            }
                                            if (preg_replace("/\\\$d_ini_menu\\[[0-9]{1,2}\\] = \"[0-9]{1,2}\";/", "", $linea) == "") {
                                                $linea_trovata = "SI";
                                            }
                                            if (preg_replace("/\\\$n_dates_menu\\[[0-9]{1,2}\\] = \"[0-9]{1,4}\";/", "", $linea) == "") {
                                                $linea_trovata = "SI";
                                            }
                                            if (preg_replace("/\\\$d_increment\\[[0-9]{1,2}\\] = \"[0-9]{1,2}\";/", "", $linea) == "") {
                                                $linea_trovata = "SI";
                                            }
                                            if ($linea == "\$partial_dates = 1;") {
                                                $linea_trovata = "SI";
                                            }
                                            if (preg_replace("/\\\$d_names = \"\\\\\"[^\"]{1,16}\\\\\",\\\\\"[^\"]{1,16}\\\\\",\\\\\"[^\"]{1,16}\\\\\",\\\\\"[^\"]{1,16}\\\\\",\\\\\"[^\"]{1,16}\\\\\",\\\\\"[^\"]{1,16}\\\\\",\\\\\"[^\"]{1,16}\\\\\"\";/", "", $linea) == "") {
                                                $linea_trovata = "SI";
                                            }
                                            if (preg_replace("/\\\$m_names = \"\\\\\"[^\"]{1,16}\\\\\",\\\\\"[^\"]{1,16}\\\\\",\\\\\"[^\"]{1,16}\\\\\",\\\\\"[^\"]{1,16}\\\\\",\\\\\"[^\"]{1,16}\\\\\",\\\\\"[^\"]{1,16}\\\\\",\\\\\"[^\"]{1,16}\\\\\",\\\\\"[^\"]{1,16}\\\\\",\\\\\"[^\"]{1,16}\\\\\",\\\\\"[^\"]{1,16}\\\\\",\\\\\"[^\"]{1,16}\\\\\",\\\\\"[^\"]{1,16}\\\\\"\";/", "", $linea) == "") {
                                                $linea_trovata = "SI";
                                            }
                                            if ($linea_trovata != "SI") {
                                                $file_coerente = "NO";
                                                $num_err .= "#38";
                                            }
                                        }
                                        # fine if ($leggendo_cont_file_sel != "SI")
                                        if ($leggendo_cont_file_sel == "SI") {
                                            if (str_replace("\\\\", "", $linea) != $linea) {
                                                $file_coerente = "NO";
                                                $num_err .= "#39";
                                            }
                                            $linea = str_replace("\\\"", "", $linea);
                                            if (str_replace("\"", "", $linea) != $linea) {
                                                $file_coerente = "NO";
                                                $num_err .= "#40";
                                            }
                                        }
                                        # fine if ($leggendo_cont_file_sel == "SI")
                                        if ($linea == "\$dates_options_list = \"") {
                                            $leggendo_cont_file_sel = "SI";
                                        }
                                    }
                                    # fine if (substr($nome_file,0,20) == "./data/selectperiodi" or...
                                    if ($nome_file == "./data/abilita_login" and $linea != "") {
                                        $file_coerente = "NO";
                                        $num_err .= "#41";
                                    }
                                    if ($nome_file == "./data/lingua.php" and $linea != "" and $linea != "<?php" and $linea != "?>" and preg_replace("/\\\$lingua\\[[0-9]{1,8}\\] = \"[a-z]{1,3}\";/", "", $linea) != "") {
                                        $file_coerente = "NO";
                                        $num_err .= "#42";
                                    }
                                    if ($nome_file == "./data/unit.php" or $nome_file == "./data/unit_single.php") {
                                        $linea_trovata = "NO";
                                        if ($linea == "") {
                                            $linea_trovata = "SI";
                                        }
                                        if ($linea == "<?php") {
                                            $linea_trovata = "SI";
                                        }
                                        if ($linea == "?>") {
                                            $linea_trovata = "SI";
                                        }
                                        if (preg_replace("/^\\\$unit\\['(p_n|s_n|gender)'\\] = \\\$trad_var\\['[a-z_]*'\\];/", "", $linea) == "") {
                                            $linea_trovata = "SI";
                                        }
                                        if (preg_replace("/^\\\$unit\\['lang'\\]\\['[a-z]{2,3}'\\]\\['(p_n|s_n|gender)'\\] = '[^']*';/", "", $linea) == "") {
                                            $linea_trovata = "SI";
                                        }
                                        if ($linea == "\$unit['s_n'] = \$unit['lang'][\$lingua_mex]['s_n'];") {
                                            $linea_trovata = "SI";
                                        }
                                        if ($linea == "\$unit['p_n'] = \$unit['lang'][\$lingua_mex]['p_n'];") {
                                            $linea_trovata = "SI";
                                        }
                                        if ($linea == "\$unit['gender'] = \$unit['lang'][\$lingua_mex]['gender'];") {
                                            $linea_trovata = "SI";
                                        }
                                        if ($linea == "\$unit['special'] = 0;") {
                                            $linea_trovata = "SI";
                                        }
                                        if ($linea == "\$car_spec = explode(\",\",\$trad_var['special_characters']);") {
                                            $linea_trovata = "SI";
                                        }
                                        if ($linea == "for (\$num1 = 0 ; \$num1 < count(\$car_spec) ; \$num1++) if (substr(\$unit['p_n'],0,strlen(\$car_spec[\$num1])) == \$car_spec[\$num1]) \$unit['special'] = 1;") {
                                            $linea_trovata = "SI";
                                        }
                                        if ($linea_trovata != "SI") {
                                            $file_coerente = "NO";
                                            $num_err .= "#42.1";
                                        }
                                    }
                                    # fine if ($nome_file == "./data/unit.php" or $nome_file == "./data/unit_single.php")
                                    if ($nome_file == "./data/tema.php" and $linea != "" and $linea != "<?php" and $linea != "?>" and preg_replace("/\\\$tema\\[[0-9]{1,8}\\] = \"[a-z]{1,4}\";/", "", $linea) != "" and preg_replace("/\\\$parole_sost = [01];/", "", $linea) != "") {
                                        $file_coerente = "NO";
                                        $num_err .= "#43";
                                    }
                                    if ($nome_file == "./data/parole_sost.php" and $linea != "" and $linea != "<?php" and $linea != "?>" and preg_replace("/\\\$messaggio = str_replace\\(\"[^\"]*\",\"[^\"]*\",\\\$messaggio\\);/", "", $linea) != "") {
                                        $file_coerente = "NO";
                                        $num_err .= "#44";
                                    }
                                    if ($nome_file == "./data/dati_interconnessioni.php") {
                                        $linea_trovata = "NO";
                                        if ($linea == "") {
                                            $linea_trovata = "SI";
                                        }
                                        if ($linea == "<?php") {
                                            $linea_trovata = "SI";
                                        }
                                        if ($linea == "?>") {
                                            $linea_trovata = "SI";
                                        }
                                        if (preg_replace("/^#[0-9a-zA-Z _]*/", "", $linea) == "") {
                                            $linea_trovata = "SI";
                                        }
                                        if (preg_replace("/^unset\\(\\\$ic_[a-z_]+[0-9a-z_]*\\);/", "", $linea) == "") {
                                            $linea_trovata = "SI";
                                        }
                                        if (preg_replace("/\\\$ic_[a-z_]+[0-9a-z_]*\\[?\"?[0-9a-zA-Z_]*\"?\\]?\\[?\"?[0-9a-zA-Z_]*\"?\\]?\\[?\"?[0-9a-zA-Z_]*\"?\\]? = \"[^\"]*\";/", "", $linea) == "") {
                                            $linea_trovata = "SI";
                                        }
                                        if (preg_replace("/\\\$ic_org[a-z_]+[0-9a-z_]*_ic = C_[A-Z][A-Z_]*[A-Z]_IC;/", "", $linea) == "") {
                                            $linea_trovata = "SI";
                                        }
                                        if ($linea_trovata != "SI") {
                                            $file_coerente = "NO";
                                            $num_err .= "#45";
                                        }
                                    }
                                    # fine if ($nome_file == "./data/dati_interconnessioni.php")
                                    if ($nome_file == "./data/log_utenti.php" and ($prima_linea != "<?php exit(); ?>" or $linea != "<?php exit(); ?>" and preg_replace("/^[0-9]+>[0-9]{4,4}-[0-9]{2,2}-[0-9]{2,2} [0-9]{2,2}:[0-9]{2,2}:[0-9]{2,2}>[a-zA-Z]?.*/", "", $linea) != "")) {
                                        $file_coerente = "NO";
                                        $num_err .= "#46";
                                    }
                                    if ($leggendo_contenuto == "NO") {
                                        $nome_file = "";
                                    }
                                }
                                # fine if ($leggendo_contenuto == "SI")
                                if ($linea == "<contenuto>") {
                                    $leggendo_contenuto = "SI";
                                    $leggendo_prima_linea = "SI";
                                }
                                # fine if ($linea == "<contenuto>")
                            }
                            # fine if ($nome_file)
                            if (substr($linea, 0, 10) == "<nomefile>") {
                                $nome_file = substr($linea, 10);
                                $nome_file = substr($nome_file, 0, -11);
                                if (C_CREA_SUBORDINAZIONI == "NO" and str_replace("dati_subordinazione", "", $nome_file) != $nome_file) {
                                    $file_coerente = "NO";
                                    $num_err .= "#47";
                                }
                                if (substr($nome_file, 0, 7) != "./data/") {
                                    $file_coerente = "NO";
                                    $num_err .= "#48";
                                }
                                $nome_file_vett = explode("/", $nome_file);
                                if (count($nome_file_vett) > 3) {
                                    $file_coerente = "NO";
                                    $num_err .= "#49";
                                }
                                $nome_file_trovato = "NO";
                                if ($nome_file == "./data/selectappartamenti.php") {
                                    $nome_file_trovato = "SI";
                                }
                                if ($nome_file == "./data/abilita_login") {
                                    $nome_file_trovato = "SI";
                                }
                                if ($nome_file == "./data/lingua.php") {
                                    $nome_file_trovato = "SI";
                                }
                                if ($nome_file == "./data/unit.php") {
                                    $nome_file_trovato = "SI";
                                }
                                if ($nome_file == "./data/unit_single.php") {
                                    $nome_file_trovato = "SI";
                                }
                                if ($nome_file == "./data/tema.php") {
                                    $nome_file_trovato = "SI";
                                }
                                if ($nome_file == "./data/parole_sost.php") {
                                    $nome_file_trovato = "SI";
                                }
                                if ($nome_file == "./data/dati_interconnessioni.php") {
                                    $nome_file_trovato = "SI";
                                }
                                if ($nome_file == "./data/log_utenti.php") {
                                    $nome_file_trovato = "SI";
                                }
                                if ($nome_file == "./data/versione.php") {
                                    $nome_file_trovato = "SI";
                                }
                                if (substr($nome_file, 0, 20) == "./data/selectperiodi") {
                                    $nome_file_trovato = "SI";
                                }
                                if (substr($nome_file, 0, 21) == "./data/selperiodimenu") {
                                    $nome_file_trovato = "SI";
                                }
                                if ($nome_file_trovato == "NO") {
                                    $file_coerente = "NO";
                                    $num_err .= "#50";
                                }
                            }
                            # fine if (substr($linea,0,9) == "<nomefile>")
                        }
                        # fine if ($leggendo_file == "SI")
                        if ($linea == "<file>" and $leggendo_modello != "SI") {
                            $leggendo_file = "SI";
                        }
                    }
                    # fine else if ($leggendo_database == "SI")
                    if ($linea == "<database>" and $leggendo_modello != "SI") {
                        $leggendo_database = "SI";
                    }
                    if ($linea == "</modello>") {
                        $leggendo_modello = "NO";
                    }
                    if ($linea == "<modello>" and $leggendo_database != "SI" and $leggendo_file != "SI") {
                        $leggendo_modello = "SI";
                    }
                }
                # fine if ($leggendo_backup == "SI")
                if ($linea == "<backup>") {
                    $leggendo_backup = "SI";
                }
            }
            # fine for $num1
        }
        # fine while (!feof($fbackup))
        fclose($fbackup);
    } else {
        $file_coerente = "NO";
        $num_err .= "#51";
    }
    if (preg_replace("/SI[0-9,]*/", "", $phpr_log) != "") {
        $phpr_log = "NO";
    }
    if (!@is_array($campo_anno_esistente) or !@is_array($tab_anno_esistente)) {
        $file_coerente = "NO";
        $num_err .= "#52";
    } else {
        if (count($campo_anno_esistente) != count($tab_anno_esistente)) {
            $file_coerente = "NO";
            $num_err .= "#53";
        }
        reset($campo_anno_esistente);
        while (list($key, $val) = each($campo_anno_esistente)) {
            if ($tab_anno_esistente[$key] != "SI") {
                $file_coerente = "NO";
                $num_err .= "#54";
            }
            if ($tab_presente[$key]['prenota'] != "SI") {
                $file_coerente = "NO";
                $num_err .= "#55";
            }
            if ($tab_presente[$key]['costiprenota'] != "SI") {
                $file_coerente = "NO";
                $num_err .= "#56";
            }
            if ($tab_presente[$key]['rclientiprenota'] != "SI") {
                $file_coerente = "NO";
                $num_err .= "#57";
            }
            if ($tab_presente[$key]['costi'] != "SI") {
                $file_coerente = "NO";
                $num_err .= "#58";
            }
            if ($tab_presente[$key]['regole'] != "SI") {
                $file_coerente = "NO";
                $num_err .= "#59";
            }
            if ($tab_presente[$key]['soldi'] != "SI") {
                $file_coerente = "NO";
                $num_err .= "#60";
            }
            if ($tab_presente[$key]['periodi'] != "SI") {
                $file_coerente = "NO";
                $num_err .= "#61";
            }
            if ($tab_presente[$key]['ntariffe'] != "SI") {
                $file_coerente = "NO";
                $num_err .= "#62";
            }
            if (defined("C_PRIMO_ANNO_CREATO") and C_CREA_ANNO_NON_ATTUALE == "NO" and $key < C_PRIMO_ANNO_CREATO) {
                $file_coerente = "NO";
                $num_err .= "#63";
            }
            if (C_CREA_ANNO_NON_ATTUALE == "NO" and $key > date("Y", time() + C_DIFF_ORE * 3600)) {
                $file_coerente = "NO";
                $num_err .= "#64";
            }
            if (!$anno_max or $key > $anno_max) {
                $anno_max = $key;
                $ultimo_tipo_periodi = $val;
            }
            # fine if (!$anno_max or $key > $anno_max)
            if (!$numero_tariffe[$key] or controlla_num_pos($numero_tariffe[$key]) == "NO") {
                $file_coerente = "NO";
                $num_err .= "#65";
            }
            if (defined("C_MASSIMO_NUM_TARIFFE") and C_MASSIMO_NUM_TARIFFE != 0 and $numero_tariffe[$key] > C_MASSIMO_NUM_TARIFFE) {
                $file_coerente = "NO";
                $num_err .= "#66";
            }
            if ($val != "g" and $val != "s") {
                $file_coerente = "NO";
                $num_err .= "#67";
            }
            if ($val == "g" and $linee_inserite_in_tabella["periodi" . $key] > 1825 or $val == "s" and $linee_inserite_in_tabella["periodi" . $key] > 260) {
                $file_coerente = "NO";
                $num_err .= "#68";
            }
            $prenotazioni_max = $linee_inserite_in_tabella["periodi" . $key] * ($linee_inserite_in_tabella["appartamenti"] + 2);
            if (defined("C_MASSIMO_NUM_COSTI_AGG_IN_PRENOTA") and C_MASSIMO_NUM_COSTI_AGG_IN_PRENOTA != 0 and $linee_inserite_in_tabella["costiprenota" . $key] > C_MASSIMO_NUM_COSTI_AGG_IN_PRENOTA * $prenotazioni_max) {
                $file_coerente = "NO";
                $num_err .= "#69";
            }
            if (defined("C_MASSIMO_NUM_CLIENTI") and C_MASSIMO_NUM_CLIENTI != 0 and $linee_inserite_in_tabella["rclientiprenota" . $key] > C_MASSIMO_NUM_CLIENTI * $prenotazioni_max) {
                $file_coerente = "NO";
                $num_err .= "#70";
            }
            if ($linee_inserite_in_tabella["prenota" . $key] > $prenotazioni_max) {
                $file_coerente = "NO";
                $num_err .= "#71";
            }
            if ($linee_inserite_in_tabella["regole" . $key] > $prenotazioni_max + $numero_tariffe[$key] * 2) {
                $file_coerente = "NO";
                $num_err .= "#72";
            }
        }
        # fine while (list($key,$val) = each($campo_anno_esistente))
    }
    # fine else if (!@is_array($campo_anno_esistente) or...
    if (C_CAMBIA_TIPO_PERIODI == "NO" and $tipo_periodi_prec[$ultimo_anno_prec] != $ultimo_tipo_periodi) {
        $file_coerente = "NO";
        $num_err .= "#73";
    }
    if ($tab_presente['clienti'] != "SI") {
        $file_coerente = "NO";
        $num_err .= "#74";
    }
    if ($tab_presente['relclienti'] != "SI") {
        $file_coerente = "NO";
        $num_err .= "#75";
    }
    if ($tab_presente['anni'] != "SI") {
        $file_coerente = "NO";
        $num_err .= "#76";
    }
    if ($tab_presente['versioni'] != "SI") {
        $file_coerente = "NO";
        $num_err .= "#77";
    }
    if ($tab_presente['nazioni'] != "SI") {
        $file_coerente = "NO";
        $num_err .= "#78";
    }
    if ($tab_presente['regioni'] != "SI") {
        $file_coerente = "NO";
        $num_err .= "#79";
    }
    if ($tab_presente['citta'] != "SI") {
        $file_coerente = "NO";
        $num_err .= "#80";
    }
    if ($tab_presente['documentiid'] != "SI") {
        $file_coerente = "NO";
        $num_err .= "#81";
    }
    if ($tab_presente['parentele'] != "SI") {
        $file_coerente = "NO";
        $num_err .= "#82";
    }
    if ($tab_presente['personalizza'] != "SI") {
        $file_coerente = "NO";
        $num_err .= "#83";
    }
    if ($tab_presente['appartamenti'] != "SI") {
        $file_coerente = "NO";
        $num_err .= "#84";
    }
    if ($tab_presente['utenti'] != "SI") {
        $file_coerente = "NO";
        $num_err .= "#85";
    }
    if ($tab_presente['gruppi'] != "SI") {
        $file_coerente = "NO";
        $num_err .= "#86";
    }
    if ($tab_presente['privilegi'] != "SI") {
        $file_coerente = "NO";
        $num_err .= "#87";
    }
    if ($tab_presente['relutenti'] != "SI") {
        $file_coerente = "NO";
        $num_err .= "#88";
    }
    if ($tab_presente['relgruppi'] != "SI") {
        $file_coerente = "NO";
        $num_err .= "#89";
    }
    if ($tab_presente['sessioni'] != "SI") {
        $file_coerente = "NO";
        $num_err .= "#90";
    }
    if ($tab_presente['transazioni'] != "SI") {
        $file_coerente = "NO";
        $num_err .= "#91";
    }
    if ($tab_presente['transazioniweb'] != "SI") {
        $file_coerente = "NO";
        $num_err .= "#92";
    }
    if ($tab_presente['descrizioni'] != "SI") {
        $file_coerente = "NO";
        $num_err .= "#93";
    }
    if ($tab_presente['beniinventario'] != "SI") {
        $file_coerente = "NO";
        $num_err .= "#94";
    }
    if ($tab_presente['magazzini'] != "SI") {
        $file_coerente = "NO";
        $num_err .= "#95";
    }
    if ($tab_presente['relinventario'] != "SI") {
        $file_coerente = "NO";
        $num_err .= "#96";
    }
    if ($tab_presente['casse'] != "SI") {
        $file_coerente = "NO";
        $num_err .= "#96.1";
    }
    if ($tab_presente['contratti'] != "SI") {
        $file_coerente = "NO";
        $num_err .= "#97";
    }
    if ($tab_presente['interconnessioni'] != "SI") {
        $file_coerente = "NO";
        $num_err .= "#98";
    }
    if ($tab_presente['messaggi'] != "SI") {
        $file_coerente = "NO";
        $num_err .= "#99";
    }
    unset($tab_presente);
    unset($var_riserv);
    if ($file_coerente == "NO") {
        if ($silenzio != "SI") {
            echo mex("Il formato del file è errato", $pag) . ".<br>";
        }
        # debug backup COMPLETO
        #if ($num_err) echo mex("Errori",$pag).": $num_err.<br>";
    } else {
        if (defined('C_EXT_DB_DATA_PATH') and C_EXT_DB_DATA_PATH) {
            $HOTELD_DB_TYPE = "";
            $HOTELD_DB_NAME = "";
            $HOTELD_DB_HOST = "";
            $HOTELD_DB_PORT = "";
            $HOTELD_DB_USER = "";
            $HOTELD_DB_PASS = "";
            $HOTELD_TAB_PRE = "";
            include C_EXT_DB_DATA_PATH;
            if ($HOTELD_DB_TYPE) {
                $N_PHPR_DB_TYPE = $HOTELD_DB_TYPE;
            }
            if ($HOTELD_DB_NAME) {
                $N_PHPR_DB_NAME = $HOTELD_DB_NAME;
            }
            if ($HOTELD_DB_HOST) {
                $N_PHPR_DB_HOST = $HOTELD_DB_HOST;
            }
            if (strcmp($HOTELD_DB_PORT, "")) {
                $N_PHPR_DB_PORT = $HOTELD_DB_PORT;
            }
            if ($HOTELD_DB_USER) {
                $N_PHPR_DB_USER = $HOTELD_DB_USER;
            }
            if (strcmp($HOTELD_DB_PASS, "")) {
                $N_PHPR_DB_PASS = $HOTELD_DB_PASS;
            }
            if ($HOTELD_TAB_PRE) {
                $N_PHPR_TAB_PRE = $HOTELD_TAB_PRE;
            }
        }
        # fine if (defined('C_EXT_DB_DATA_PATH') and C_EXT_DB_DATA_PATH)
        if ($N_PHPR_DB_TYPE == "mysql" and @function_exists('mysqli_connect')) {
            $N_PHPR_DB_TYPE = "mysqli";
        }
        if ($N_PHPR_DB_NAME != $PHPR_DB_NAME or $N_PHPR_DB_HOST != $PHPR_DB_HOST or $N_PHPR_DB_PORT != $PHPR_DB_PORT or $N_PHPR_DB_TYPE != $PHPR_DB_TYPE) {
            $nuovo_db = "SI";
            if ($N_PHPR_DB_NAME == $PHPR_DB_NAME and $N_PHPR_DB_HOST == $PHPR_DB_HOST and $N_PHPR_DB_PORT == $PHPR_DB_PORT and substr($N_PHPR_DB_TYPE, 0, 5) == "mysql" and substr($PHPR_DB_TYPE, 0, 5) == "mysql") {
                $database_esistente = "SI";
            }
        }
        # fine if ($N_PHPR_DB_NAME != $PHPR_DB_NAME or $N_PHPR_DB_HOST != $PHPR_DB_HOST or...
        if ($nuovo_db == "SI" or $N_PHPR_TAB_PRE != $PHPR_TAB_PRE) {
            $mantieni_anni = "";
        }
        unset($anno_mantieni);
        $tabelle_lock = array($tableanni, $tableutenti);
        $altre_tab_lock = array($PHPR_TAB_PRE . "clienti", $PHPR_TAB_PRE . "personalizza", $PHPR_TAB_PRE . "privilegi");
        $tabelle_lock = lock_tabelle($tabelle_lock, $altre_tab_lock);
        $anni_vecchi = esegui_query("select * from {$tableanni} order by idanni");
        $num_anni_vecchi = numlin_query($anni_vecchi);
        $utenti_vecchi = esegui_query("select * from {$tableutenti} order by idutenti");
        unlink(C_DATA_PATH . "/dati_connessione.php");
        unlink(C_DATA_PATH . "/selectappartamenti.php");
        unlink(C_DATA_PATH . "/versione.php");
        unlink(C_DATA_PATH . "/tema.php");
        if (@is_file(C_DATA_PATH . "/parole_sost.php")) {
            unlink(C_DATA_PATH . "/parole_sost.php");
        }
        if (@is_file(C_DATA_PATH . "/dati_interconnessioni.php")) {
            unlink(C_DATA_PATH . "/dati_interconnessioni.php");
        }
        if (@is_file(C_DATA_PATH . "/abilita_login")) {
            unlink(C_DATA_PATH . "/abilita_login");
        }
        if (@is_file(C_DATA_PATH . "/log_utenti.php")) {
            unlink(C_DATA_PATH . "/log_utenti.php");
        }
        #if (@is_file(C_DATI_PATH."/ultimo_accesso")) unlink(C_DATI_PATH."/ultimo_accesso");
        esegui_query("drop table " . $PHPR_TAB_PRE . "anni");
        esegui_query("drop table " . $PHPR_TAB_PRE . "utenti");
        unlock_tabelle($tabelle_lock);
        for ($num1 = 0; $num1 < $num_anni_vecchi; $num1 = $num1 + 1) {
            $anno_cancella = risul_query($anni_vecchi, $num1, 'idanni');
            if (!$mantieni_anni or $campo_anno_esistente[$anno_cancella]) {
                esegui_query("drop table " . $PHPR_TAB_PRE . "prenota{$anno_cancella}");
                esegui_query("drop table " . $PHPR_TAB_PRE . "costiprenota{$anno_cancella}");
                esegui_query("drop table " . $PHPR_TAB_PRE . "rclientiprenota{$anno_cancella}");
                esegui_query("drop table " . $PHPR_TAB_PRE . "periodi{$anno_cancella}");
                esegui_query("drop table " . $PHPR_TAB_PRE . "ntariffe{$anno_cancella}");
                esegui_query("drop table " . $PHPR_TAB_PRE . "regole{$anno_cancella}");
                esegui_query("drop table " . $PHPR_TAB_PRE . "soldi{$anno_cancella}");
                esegui_query("drop table " . $PHPR_TAB_PRE . "costi{$anno_cancella}");
                for ($num2 = 0; $num2 < numlin_query($utenti_vecchi); $num2++) {
                    $idutente_canc = risul_query($utenti_vecchi, $num2, 'idutenti');
                    if (@is_file(C_DATA_PATH . "/selectperiodi{$anno_cancella}.{$idutente_canc}.php")) {
                        unlink(C_DATA_PATH . "/selectperiodi{$anno_cancella}.{$idutente_canc}.php");
                    }
                    if (@is_file(C_DATA_PATH . "/selperiodimenu{$anno_cancella}.{$idutente_canc}.php")) {
                        unlink(C_DATA_PATH . "/selperiodimenu{$anno_cancella}.{$idutente_canc}.php");
                    }
                }
                # fine for $num2
            } elseif ($mantieni_anni) {
                $anno_mantieni[$anno_cancella] = 1;
            }
        }
        # fine for $num1
        if ($mantieni_anni and @is_array($anno_mantieni)) {
            $clienti_vecchi = esegui_query("select * from " . $PHPR_TAB_PRE . "clienti order by idclienti");
            $max_clienti_vecchi = esegui_query("select max(idclienti) from " . $PHPR_TAB_PRE . "clienti");
            $max_clienti_vecchi = risul_query($max_clienti_vecchi, 0, 0);
            $privilegi_vecchi = esegui_query("select * from " . $PHPR_TAB_PRE . "privilegi order by idutente");
            $personalizza_vecchi = esegui_query("select * from " . $PHPR_TAB_PRE . "personalizza where idpersonalizza {$LIKE} 'giorno_vedi_ini_sett%' ");
        }
        # fine if ($mantieni_anni and @is_array($anno_mantieni))
        esegui_query("drop table " . $PHPR_TAB_PRE . "appartamenti");
        esegui_query("drop table " . $PHPR_TAB_PRE . "clienti");
        esegui_query("drop table " . $PHPR_TAB_PRE . "relclienti");
        esegui_query("drop table " . $PHPR_TAB_PRE . "personalizza");
        esegui_query("drop table " . $PHPR_TAB_PRE . "versioni");
        esegui_query("drop table " . $PHPR_TAB_PRE . "nazioni");
        esegui_query("drop table " . $PHPR_TAB_PRE . "regioni");
        esegui_query("drop table " . $PHPR_TAB_PRE . "citta");
        esegui_query("drop table " . $PHPR_TAB_PRE . "documentiid");
        esegui_query("drop table " . $PHPR_TAB_PRE . "parentele");
        esegui_query("drop table " . $PHPR_TAB_PRE . "gruppi");
        esegui_query("drop table " . $PHPR_TAB_PRE . "privilegi");
        esegui_query("drop table " . $PHPR_TAB_PRE . "relutenti");
        esegui_query("drop table " . $PHPR_TAB_PRE . "relgruppi");
        esegui_query("drop table " . $PHPR_TAB_PRE . "sessioni");
        esegui_query("drop table " . $PHPR_TAB_PRE . "transazioni");
        esegui_query("drop table " . $PHPR_TAB_PRE . "transazioniweb");
        esegui_query("drop table " . $PHPR_TAB_PRE . "descrizioni");
        esegui_query("drop table " . $PHPR_TAB_PRE . "beniinventario");
        esegui_query("drop table " . $PHPR_TAB_PRE . "magazzini");
        esegui_query("drop table " . $PHPR_TAB_PRE . "relinventario");
        esegui_query("drop table " . $PHPR_TAB_PRE . "casse");
        esegui_query("drop table " . $PHPR_TAB_PRE . "contratti");
        esegui_query("drop table " . $PHPR_TAB_PRE . "cache");
        esegui_query("drop table " . $PHPR_TAB_PRE . "interconnessioni");
        esegui_query("drop table " . $PHPR_TAB_PRE . "messaggi");
        disconnetti_db($numconnessione);
        if ($nuovo_db == "SI") {
            if ($silenzio != "SI") {
                echo "<br>" . mex("Vecchio database svuotato, per rimuoverlo del tutto procedere manualmente", $pag) . ".<br><br>";
            }
            if ($database_esistente != "SI") {
                if ($N_PHPR_DB_TYPE == "postgresql") {
                    if ($N_PHPR_LOAD_EXT == "SI" and $ext_pgsql_caricata != "SI") {
                        dl("pgsql.so");
                        $ext_pgsql_caricata = "SI";
                    }
                    # fine if ($N_PHPR_LOAD_EXT == "SI" and $ext_pgsql_caricata != "SI")
                    $numconnessione = pg_connect("dbname={$tempdatabase} host={$N_PHPR_DB_HOST} port={$N_PHPR_DB_PORT} user={$N_PHPR_DB_USER} password={$N_PHPR_DB_PASS} ");
                    $encoding = " with encoding = 'SQL_ASCII'";
                    $encoding = "";
                    pg_exec("set datestyle to 'iso'");
                }
                # fine if ($N_PHPR_DB_TYPE == "postgresql")
                if ($N_PHPR_DB_TYPE == "mysql") {
                    if ($N_PHPR_LOAD_EXT == "SI" and $ext_mysql_caricata != "SI") {
                        dl("mysql.so");
                        $ext_mysql_caricata = "SI";
                    }
                    # fine if ($PHPR_LOAD_EXT == "SI" and $ext_mysql_caricata != "SI")
                    $numconnessione = mysql_connect("{$N_PHPR_DB_HOST}:{$N_PHPR_DB_PORT}", "{$N_PHPR_DB_USER}", "{$N_PHPR_DB_PASS}");
                    @mysql_query("SET NAMES 'utf8'");
                    @mysql_query("SET default_storage_engine=MYISAM");
                    $encoding = "";
                }
                # fine if ($N_PHPR_DB_TYPE == "mysql")
                if ($N_PHPR_DB_TYPE == "mysqli") {
                    if ($N_PHPR_LOAD_EXT == "SI" and $ext_mysql_caricata != "SI") {
                        dl("mysqli.so");
                        $ext_mysql_caricata = "SI";
                    }
                    # fine if ($PHPR_LOAD_EXT == "SI" and $ext_mysql_caricata != "SI")
                    $numconnessione = mysqli_connect($N_PHPR_DB_HOST, $N_PHPR_DB_USER, $N_PHPR_DB_PASS, "", $N_PHPR_DB_PORT);
                    @mysqli_query($numconnessione, "SET NAMES 'utf8'");
                    @mysqli_query($numconnessione, "SET default_storage_engine=MYISAM");
                    $encoding = "";
                }
                # fine if ($N_PHPR_DB_TYPE == "mysqli")
                if ($N_PHPR_DB_TYPE == "sqlite") {
                    if ($N_PHPR_LOAD_EXT == "SI" and $ext_sqlite_caricata != "SI") {
                        dl("sqlite.so");
                        $ext_sqlite_caricata = "SI";
                    }
                    # fine if ($PHPR_LOAD_EXT == "SI" and $ext_mysql_caricata != "SI")
                    $numconnessione = new SQLite3(C_DATA_PATH . "/db_" . $N_PHPR_DB_NAME);
                    $query = $numconnessione;
                    $database_esistente = "SI";
                }
                # fine if ($N_PHPR_DB_TYPE == "sqlite")
                if ($database_esistente != "SI") {
                    $query = esegui_query2("create database {$N_PHPR_DB_NAME} {$encoding}", $N_PHPR_DB_TYPE);
                }
                if ($N_PHPR_DB_TYPE == "postgresql") {
                    pg_close($numconnessione);
                }
                if ($N_PHPR_DB_TYPE == "mysql") {
                    mysql_close($numconnessione);
                }
                if ($N_PHPR_DB_TYPE == "mysqli") {
                    mysqli_close($numconnessione);
                }
                if ($N_PHPR_DB_TYPE == "sqlite") {
                    $numconnessione->close();
                }
            } else {
                $query = 1;
            }
        } else {
            $query = 1;
        }
        unlink(C_DATA_PATH . "/lingua.php");
        unlink(C_DATA_PATH . "/unit.php");
        unlink(C_DATA_PATH . "/unit_single.php");
        if ($query) {
            $character_set_db = "";
            $collation_db = "";
            if ($N_PHPR_DB_TYPE == "postgresql") {
                $DATETIME = "timestamp";
                $MEDIUMTEXT = "text";
                if ($N_PHPR_LOAD_EXT == "SI" and $ext_pgsql_caricata != "SI") {
                    dl("pgsql.so");
                    $ext_pgsql_caricata = "SI";
                }
                # fine if ($N_PHPR_LOAD_EXT == "SI" and $ext_pgsql_caricata != "SI")
                $numconnessione = pg_connect("dbname={$N_PHPR_DB_NAME} host={$N_PHPR_DB_HOST} port={$N_PHPR_DB_PORT} user={$N_PHPR_DB_USER} password={$N_PHPR_DB_PASS} ");
                pg_exec("set datestyle to 'iso'");
            }
            # fine if ($N_PHPR_DB_TYPE == "postgresql")
            if ($N_PHPR_DB_TYPE == "mysql") {
                $DATETIME = "datetime";
                $MEDIUMTEXT = "mediumtext";
                if ($N_PHPR_LOAD_EXT == "SI" and $ext_mysql_caricata != "SI") {
                    dl("mysql.so");
                    $ext_mysql_caricata = "SI";
                }
                # fine if ($N_PHPR_LOAD_EXT == "SI" and $ext_mysql_caricata != "SI")
                $numconnessione = mysql_connect("{$N_PHPR_DB_HOST}:{$N_PHPR_DB_PORT}", "{$N_PHPR_DB_USER}", "{$N_PHPR_DB_PASS}");
                @mysql_query("SET NAMES 'utf8'");
                @mysql_query("SET default_storage_engine=MYISAM");
                $select_db = mysql_select_db($N_PHPR_DB_NAME);
                if (!$select_db) {
                    $numconnessione = "";
                } else {
                    $character_set = mysql_query("SHOW VARIABLES LIKE 'character_set_database'");
                    $collation = mysql_query("SHOW VARIABLES LIKE 'collation_database'");
                    if (mysql_num_rows($character_set) == 1 and mysql_num_rows($collation) == 1) {
                        $character_set_db = mysql_result($character_set, 0, 'Value');
                        $collation_db = mysql_result($collation, 0, 'Value');
                        if ($character_set_db != "utf8" or $collation_db != "utf8_general_ci") {
                            mysql_query("alter database {$N_PHPR_DB_NAME} default character set 'utf8' collate 'utf8_general_ci'");
                        }
                    }
                    # fine if (mysql_num_rows($character_set) == 1 and mysql_num_rows($collation) == 1)
                }
                # fine else if (!$select_db)
            }
            # fine if ($N_PHPR_DB_TYPE == "mysql")
            if ($N_PHPR_DB_TYPE == "mysqli") {
                $DATETIME = "datetime";
                $MEDIUMTEXT = "mediumtext";
                if ($N_PHPR_LOAD_EXT == "SI" and $ext_mysql_caricata != "SI") {
                    dl("mysqli.so");
                    $ext_mysql_caricata = "SI";
                }
                # fine if ($N_PHPR_LOAD_EXT == "SI" and $ext_mysql_caricata != "SI")
                global $link_mysqli;
                $numconnessione = mysqli_connect($N_PHPR_DB_HOST, $N_PHPR_DB_USER, $N_PHPR_DB_PASS, "", $N_PHPR_DB_PORT);
                $link_mysqli = $numconnessione;
                @mysqli_query($numconnessione, "SET NAMES 'utf8'");
                @mysqli_query($numconnessione, "SET default_storage_engine=MYISAM");
                $select_db = mysqli_select_db($numconnessione, $N_PHPR_DB_NAME);
                if (!$select_db) {
                    $numconnessione = "";
                } else {
                    $character_set = mysqli_query($numconnessione, "SHOW VARIABLES LIKE 'character_set_database'");
                    $collation = mysqli_query($numconnessione, "SHOW VARIABLES LIKE 'collation_database'");
                    if (mysqli_num_rows($character_set) == 1 and mysqli_num_rows($collation) == 1) {
                        $character_set_db = mysqli_fetch_assoc($character_set);
                        $character_set_db = $character_set_db['Value'];
                        $collation_db = mysqli_fetch_assoc($collation);
                        $collation_db = $collation_db['Value'];
                        if ($character_set_db != "utf8" or $collation_db != "utf8_general_ci") {
                            mysqli_query($numconnessione, "alter database {$N_PHPR_DB_NAME} default character set 'utf8' collate 'utf8_general_ci'");
                        }
                    }
                    # fine if (mysqli_num_rows($character_set) == 1 and mysqli_num_rows($collation) == 1)
                }
                # fine else if (!$select_db)
            }
            # fine if ($N_PHPR_DB_TYPE == "mysqli")
            if ($N_PHPR_DB_TYPE == "sqlite") {
                $DATETIME = "text";
                $MEDIUMTEXT = "text";
                if ($N_PHPR_LOAD_EXT == "SI" and $ext_sqlite_caricata != "SI") {
                    dl("sqlite.so");
                    $ext_sqlite_caricata = "SI";
                }
                # fine if ($N_PHPR_LOAD_EXT == "SI" and $ext_sqlite_caricata != "SI")
                $numconnessione = new SQLite3(C_DATA_PATH . "/db_" . $N_PHPR_DB_NAME);
            }
            # fine if ($N_PHPR_DB_TYPE == "sqlite")
            if ($numconnessione) {
                $fileaperto = fopen(C_DATA_PATH . "/dati_connessione.php", "w+");
                if (defined('C_EXT_DB_DATA_PATH') and C_EXT_DB_DATA_PATH) {
                    if ($HOTELD_DB_TYPE) {
                        $N_PHPR_DB_TYPE = "";
                    }
                    if ($HOTELD_DB_NAME) {
                        $N_PHPR_DB_NAME = "";
                    }
                    if ($HOTELD_DB_HOST) {
                        $N_PHPR_DB_HOST = "";
                    }
                    if (strcmp($HOTELD_DB_PORT, "")) {
                        $N_PHPR_DB_PORT = "";
                    }
                    if ($HOTELD_DB_USER) {
                        $N_PHPR_DB_USER = "";
                    }
                    if (strcmp($HOTELD_DB_PASS, "")) {
                        $N_PHPR_DB_PASS = "";
                    }
                    if ($HOTELD_TAB_PRE) {
                        $N_PHPR_TAB_PRE = "";
                    }
                }
                # fine if (defined('C_EXT_DB_DATA_PATH') and C_EXT_DB_DATA_PATH)
                $N_PHPR_DB_NAME = aggiungi_slash($N_PHPR_DB_NAME);
                $N_PHPR_DB_HOST = aggiungi_slash($N_PHPR_DB_HOST);
                $N_PHPR_DB_USER = aggiungi_slash($N_PHPR_DB_USER);
                $N_PHPR_DB_PASS = aggiungi_slash($N_PHPR_DB_PASS);
                fwrite($fileaperto, "<?php\n\$PHPR_DB_TYPE = \"{$N_PHPR_DB_TYPE}\";\n\$PHPR_DB_NAME = \"{$N_PHPR_DB_NAME}\";\n\$PHPR_DB_HOST = \"{$N_PHPR_DB_HOST}\";\n\$PHPR_DB_PORT = \"{$N_PHPR_DB_PORT}\";\n\$PHPR_DB_USER = \"{$N_PHPR_DB_USER}\";\n\$PHPR_DB_PASS = \"{$N_PHPR_DB_PASS}\";\n\$PHPR_LOAD_EXT = \"{$N_PHPR_LOAD_EXT}\";\n\$PHPR_TAB_PRE = \"{$N_PHPR_TAB_PRE}\";\n\$PHPR_LOG = \"{$phpr_log}\";\n");
                if (defined('C_EXT_DB_DATA_PATH') and C_EXT_DB_DATA_PATH) {
                    fwrite($fileaperto, "\n\$HOTELD_DB_TYPE = \"\";\n\$HOTELD_DB_NAME = \"\";\n\$HOTELD_DB_HOST = \"\";\n\$HOTELD_DB_PORT = \"\";\n\$HOTELD_DB_USER = \"\";\n\$HOTELD_DB_PASS = \"\";\n\$HOTELD_TAB_PRE = \"\";\nrequire('" . C_EXT_DB_DATA_PATH . "');\nif (\$HOTELD_DB_TYPE) \$PHPR_DB_TYPE = \$HOTELD_DB_TYPE;\nif (\$HOTELD_DB_NAME) \$PHPR_DB_NAME = \$HOTELD_DB_NAME;\nif (\$HOTELD_DB_HOST) \$PHPR_DB_HOST = \$HOTELD_DB_HOST;\nif (strcmp(\$HOTELD_DB_PORT,\"\")) \$PHPR_DB_PORT = \$HOTELD_DB_PORT;\nif (\$HOTELD_DB_USER) \$PHPR_DB_USER = \$HOTELD_DB_USER;\nif (strcmp(\$HOTELD_DB_PASS,\"\")) \$PHPR_DB_PASS = \$HOTELD_DB_PASS;\nif (\$HOTELD_TAB_PRE) \$PHPR_TAB_PRE = \$HOTELD_TAB_PRE;\n");
                }
                fwrite($fileaperto, "?>");
                fclose($fileaperto);
                @chmod(C_DATA_PATH . "/dati_connessione.php", 0640);
                $leggendo_backup = "NO";
                $leggendo_database = "NO";
                $leggendo_tabella = "NO";
                $leggendo_colonne = "NO";
                $leggendo_righe = "NO";
                $leggendo_file = "NO";
                $leggendo_contenuto = "NO";
                $nome_file = "";
                $linee_inserite_in_tabella = "";
                $ultima_linea = "";
                $fbackup = fopen($file, "r");
                if ($fbackup) {
                    $leggendo_righe = "NO";
                    while (!feof($fbackup)) {
                        unset($linee_backup);
                        $linee_backup = fread($fbackup, 524288);
                        $linee_backup = explode("\n", $linee_backup);
                        $num_linee_backup = count($linee_backup) - 1;
                        $linee_backup[0] = $ultima_linea . $linee_backup[0];
                        if (!feof($fbackup)) {
                            $ultima_linea = $linee_backup[$num_linee_backup];
                        } else {
                            $num_linee_backup++;
                        }
                        for ($num1 = 0; $num1 < $num_linee_backup; $num1++) {
                            $linea = togli_acapo($linee_backup[$num1]);
                            unset($linee_backup[$num1]);
                            # Keep alive
                            if (substr($num1, -3) == "000") {
                                http_keep_alive("&nbsp;");
                            }
                            if ($linea == "</backup>" and $leggendo_righe != "SI") {
                                $leggendo_backup = "NO";
                            }
                            if ($leggendo_backup == "SI") {
                                if ($linea == "</database>" and $leggendo_righe != "SI") {
                                    $leggendo_database = "NO";
                                }
                                # restore del database
                                if ($leggendo_database == "SI") {
                                    if ($linea == "</tabella>" and $leggendo_righe != "SI") {
                                        $leggendo_tabella = "NO";
                                    }
                                    if ($leggendo_tabella == "SI") {
                                        if (substr($linea, 0, 13) == "<nometabella>") {
                                            $nome_tabella = substr($linea, 13);
                                            $nome_tabella = substr($nome_tabella, 0, -14);
                                        }
                                        # fine if (substr($linea,0,13) == "<nometabella>")
                                        if ($linea == "</colonnetabella>" and $leggendo_righe != "SI") {
                                            $leggendo_colonne == "NO";
                                            if ($nome_tabella == "clienti") {
                                                esegui_query2("create table " . $N_PHPR_TAB_PRE . "clienti (idclienti integer primary key, cognome varchar(70) not null, nome varchar(70), soprannome varchar(70), sesso char, titolo varchar(30), lingua varchar(14), datanascita date, cittanascita varchar(70), regionenascita varchar(70), nazionenascita varchar(70), documento varchar(70), scadenzadoc date, tipodoc varchar(70), cittadoc varchar(70), regionedoc varchar(70), nazionedoc  varchar(70), nazionalita varchar(70), nazione varchar(70), regione varchar(70), citta varchar(70), via varchar(70), numcivico varchar(30), cap varchar(30), telefono varchar(50), telefono2 varchar(50), telefono3 varchar(50), fax varchar(50), email text, cod_fiscale varchar(50), partita_iva varchar(50), commento text, max_num_ordine integer, idclienti_compagni text, doc_inviati text, datainserimento {$DATETIME}, hostinserimento varchar(50), utente_inserimento integer )", $N_PHPR_DB_TYPE);
                                            }
                                            if ($nome_tabella == "relclienti") {
                                                esegui_query2("create table " . $N_PHPR_TAB_PRE . "relclienti (idclienti integer, numero integer, tipo varchar(12), testo1 text, testo2 text, testo3 text, testo4 text, testo5 text, testo6 text, testo7 text, testo8 text, datainserimento {$DATETIME}, hostinserimento varchar(50), utente_inserimento integer )", $N_PHPR_DB_TYPE);
                                                crea_indice2($N_PHPR_TAB_PRE . $nome_tabella, "idclienti", $N_PHPR_TAB_PRE . "iidp" . $nome_tabella, $N_PHPR_DB_TYPE);
                                            }
                                            # fine if ($nome_tabella == "relclienti")
                                            if ($nome_tabella == "anni") {
                                                esegui_query2("create table " . $N_PHPR_TAB_PRE . "anni (idanni integer primary key, tipo_periodi text)", $N_PHPR_DB_TYPE);
                                            }
                                            if ($nome_tabella == "versioni") {
                                                esegui_query2("create table " . $N_PHPR_TAB_PRE . "versioni (idversioni integer primary key, num_versione float4)", $N_PHPR_DB_TYPE);
                                            }
                                            if ($nome_tabella == "nazioni") {
                                                esegui_query2("create table " . $N_PHPR_TAB_PRE . "nazioni (idnazioni integer primary key, nome_nazione varchar(70), codice_nazione varchar(50), codice2_nazione varchar(50), codice3_nazione varchar(50), datainserimento {$DATETIME}, hostinserimento varchar(50), utente_inserimento integer )", $N_PHPR_DB_TYPE);
                                            }
                                            if ($nome_tabella == "regioni") {
                                                esegui_query2("create table " . $N_PHPR_TAB_PRE . "regioni (idregioni integer primary key, nome_regione varchar(70), codice_regione varchar(50), codice2_regione varchar(50), codice3_regione varchar(50), datainserimento {$DATETIME}, hostinserimento varchar(50), utente_inserimento integer )", $N_PHPR_DB_TYPE);
                                            }
                                            if ($nome_tabella == "citta") {
                                                esegui_query2("create table " . $N_PHPR_TAB_PRE . "citta (idcitta integer primary key, nome_citta varchar(70), codice_citta varchar(50), codice2_citta varchar(50), codice3_citta varchar(50), datainserimento {$DATETIME}, hostinserimento varchar(50), utente_inserimento integer )", $N_PHPR_DB_TYPE);
                                            }
                                            if ($nome_tabella == "documentiid") {
                                                esegui_query2("create table " . $N_PHPR_TAB_PRE . "documentiid (iddocumentiid integer primary key, nome_documentoid varchar(70), codice_documentoid varchar(50), codice2_documentoid varchar(50), codice3_documentoid varchar(50), datainserimento {$DATETIME}, hostinserimento varchar(50), utente_inserimento integer )", $N_PHPR_DB_TYPE);
                                            }
                                            if ($nome_tabella == "parentele") {
                                                esegui_query2("create table " . $N_PHPR_TAB_PRE . "parentele (idparentele integer primary key, nome_parentela varchar(70), codice_parentela varchar(50), codice2_parentela varchar(50), codice3_parentela varchar(50), datainserimento {$DATETIME}, hostinserimento varchar(50), utente_inserimento integer )", $N_PHPR_DB_TYPE);
                                            }
                                            if ($nome_tabella == "personalizza") {
                                                esegui_query2("create table " . $N_PHPR_TAB_PRE . "personalizza (idpersonalizza varchar(50) not null, idutente integer, valpersonalizza text, valpersonalizza_num integer)", $N_PHPR_DB_TYPE);
                                            }
                                            if ($nome_tabella == "appartamenti") {
                                                esegui_query2("create table " . $N_PHPR_TAB_PRE . "appartamenti (idappartamenti varchar(100) primary key, numpiano text, maxoccupanti integer, numcasa text, app_vicini text, priorita integer, priorita2 integer, letto varchar(1), commento text )", $N_PHPR_DB_TYPE);
                                            }
                                            if ($nome_tabella == "utenti") {
                                                esegui_query2("create table " . $N_PHPR_TAB_PRE . "utenti (idutenti integer primary key, nome_utente text, password text, salt text, tipo_pass varchar(1), datainserimento {$DATETIME}, hostinserimento varchar(50) )", $N_PHPR_DB_TYPE);
                                            }
                                            if ($nome_tabella == "gruppi") {
                                                esegui_query2("create table " . $N_PHPR_TAB_PRE . "gruppi (idgruppi integer primary key, nome_gruppo text )", $N_PHPR_DB_TYPE);
                                            }
                                            if ($nome_tabella == "privilegi") {
                                                esegui_query2("create table " . $N_PHPR_TAB_PRE . "privilegi (idutente integer, anno integer, regole1_consentite text, tariffe_consentite text, costi_agg_consentiti text, contratti_consentiti text, casse_consentite text, cassa_pagamenti varchar(70), priv_ins_prenota varchar(20), priv_mod_prenota varchar(35), priv_mod_pers varchar(15), priv_ins_clienti varchar(5), prefisso_clienti text, priv_ins_costi varchar(10), priv_vedi_tab varchar(30), priv_ins_tariffe varchar(10), priv_ins_regole varchar(10), priv_messaggi varchar(10), priv_inventario varchar(10) )", $N_PHPR_DB_TYPE);
                                            }
                                            if ($nome_tabella == "relutenti") {
                                                esegui_query2("create table " . $N_PHPR_TAB_PRE . "relutenti (idutente integer not null, idnazione integer, idregione integer, idcitta integer, iddocumentoid integer, idparentela integer, idsup integer, predef integer, datainserimento {$DATETIME}, hostinserimento varchar(50), utente_inserimento integer )", $N_PHPR_DB_TYPE);
                                                crea_indice2($N_PHPR_TAB_PRE . $nome_tabella, "idutente", $N_PHPR_TAB_PRE . "iidp" . $nome_tabella, $N_PHPR_DB_TYPE);
                                            }
                                            # fine if ($nome_tabella == "relutenti")
                                            if ($nome_tabella == "relgruppi") {
                                                esegui_query2("create table " . $N_PHPR_TAB_PRE . "relgruppi (idutente integer not null, idgruppo integer, datainserimento {$DATETIME}, hostinserimento varchar(50), utente_inserimento integer )", $N_PHPR_DB_TYPE);
                                                crea_indice2($N_PHPR_TAB_PRE . $nome_tabella, "idutente", $N_PHPR_TAB_PRE . "iidp" . $nome_tabella, $N_PHPR_DB_TYPE);
                                            }
                                            # fine if ($nome_tabella == "relgruppi")
                                            if ($nome_tabella == "sessioni") {
                                                esegui_query2("create table " . $N_PHPR_TAB_PRE . "sessioni (idsessioni varchar(30) primary key, idutente integer, indirizzo_ip text, tipo_conn varchar(12), user_agent text, ultimo_accesso {$DATETIME} )", $N_PHPR_DB_TYPE);
                                            }
                                            if ($nome_tabella == "transazioni") {
                                                esegui_query2("create table " . $N_PHPR_TAB_PRE . "transazioni (idtransazioni varchar(30) primary key, idsessione varchar(30), tipo_transazione varchar(5), anno integer, spostamenti text, dati_transazione1 text, dati_transazione2 text, dati_transazione3 text, dati_transazione4 text, dati_transazione5 text, dati_transazione6 text, dati_transazione7 text, dati_transazione8 text, dati_transazione9 text, dati_transazione10 text, dati_transazione11 text, dati_transazione12 text, dati_transazione13 text, dati_transazione14 text, dati_transazione15 text, dati_transazione16 text, dati_transazione17 text, dati_transazione18 text, dati_transazione19 text, dati_transazione20 text, ultimo_accesso {$DATETIME})", $N_PHPR_DB_TYPE);
                                            }
                                            if ($nome_tabella == "transazioniweb") {
                                                esegui_query2("create table " . $N_PHPR_TAB_PRE . "transazioniweb (idtransazioni varchar(30) primary key, idsessione varchar(30), tipo_transazione varchar(5), anno integer, spostamenti text, dati_transazione1 text, dati_transazione2 text, dati_transazione3 text, dati_transazione4 text, dati_transazione5 text, dati_transazione6 text, dati_transazione7 text, dati_transazione8 text, dati_transazione9 text, dati_transazione10 text, dati_transazione11 text, dati_transazione12 text, dati_transazione13 text, dati_transazione14 text, dati_transazione15 text, dati_transazione16 text, dati_transazione17 text, dati_transazione18 text, dati_transazione19 text, dati_transazione20 text, ultimo_accesso {$DATETIME})", $N_PHPR_DB_TYPE);
                                            }
                                            if ($nome_tabella == "descrizioni") {
                                                esegui_query2("create table " . $N_PHPR_TAB_PRE . "descrizioni (nome text not null, tipo varchar(16), lingua varchar(3), numero integer, testo {$MEDIUMTEXT} )", $N_PHPR_DB_TYPE);
                                            }
                                            if ($nome_tabella == "beniinventario") {
                                                esegui_query2("create table " . $N_PHPR_TAB_PRE . "beniinventario (idbeniinventario integer primary key, nome_bene varchar(70), codice_bene varchar(50), descrizione_bene text, datainserimento {$DATETIME}, hostinserimento varchar(50), utente_inserimento integer )", $N_PHPR_DB_TYPE);
                                            }
                                            if ($nome_tabella == "magazzini") {
                                                esegui_query2("create table " . $N_PHPR_TAB_PRE . "magazzini (idmagazzini integer primary key, nome_magazzino varchar(70), codice_magazzino varchar(50), descrizione_magazzino text, numpiano text, numcasa text, datainserimento {$DATETIME}, hostinserimento varchar(50), utente_inserimento integer )", $N_PHPR_DB_TYPE);
                                            }
                                            if ($nome_tabella == "relinventario") {
                                                esegui_query2("create table " . $N_PHPR_TAB_PRE . "relinventario (idbeneinventario integer not null, idappartamento varchar(100), idmagazzino integer, quantita integer, quantita_min_predef integer, richiesto_checkin varchar(2), datainserimento {$DATETIME}, hostinserimento varchar(50), utente_inserimento integer )", $N_PHPR_DB_TYPE);
                                                crea_indice2($N_PHPR_TAB_PRE . $nome_tabella, "idbeneinventario", $N_PHPR_TAB_PRE . "iidp" . $nome_tabella, $N_PHPR_DB_TYPE);
                                            }
                                            # fine if ($nome_tabella == "relinventario")
                                            if ($nome_tabella == "casse") {
                                                esegui_query2("create table " . $N_PHPR_TAB_PRE . "casse (idcasse integer primary key, nome_cassa varchar(70), stato varchar(8), codice_cassa varchar(50), descrizione_cassa text, datainserimento {$DATETIME}, hostinserimento varchar(50), utente_inserimento integer )", $N_PHPR_DB_TYPE);
                                            }
                                            if ($nome_tabella == "contratti") {
                                                esegui_query2("create table " . $N_PHPR_TAB_PRE . "contratti (numero integer, tipo varchar(8), testo {$MEDIUMTEXT} )", $N_PHPR_DB_TYPE);
                                            }
                                            if ($nome_tabella == "cache") {
                                                esegui_query2("create table " . $N_PHPR_TAB_PRE . "cache (numero integer, tipo varchar(8), testo {$MEDIUMTEXT}, data_modifica {$DATETIME}, datainserimento {$DATETIME} )", $N_PHPR_DB_TYPE);
                                            }
                                            if ($nome_tabella == "interconnessioni") {
                                                esegui_query2("create table " . $N_PHPR_TAB_PRE . "interconnessioni (idlocale integer, idremoto1 text, idremoto2 text, tipoid varchar(12), nome_ic varchar(24), anno integer, datainserimento {$DATETIME}, hostinserimento varchar(50), utente_inserimento integer )", $N_PHPR_DB_TYPE);
                                            }
                                            if ($nome_tabella == "messaggi") {
                                                esegui_query2("create table " . $N_PHPR_TAB_PRE . "messaggi (idmessaggi integer primary key, tipo_messaggio varchar(8), stato varchar(8), idutenti text, idutenti_visto text, datavisione {$DATETIME}, mittente text, testo text, dati_messaggio1 text, dati_messaggio2 text, dati_messaggio3 text, dati_messaggio4 text, dati_messaggio5 text, dati_messaggio6 text, dati_messaggio7 text, dati_messaggio8 text, dati_messaggio9 text, dati_messaggio10 text, dati_messaggio11 text, dati_messaggio12 text, dati_messaggio13 text, dati_messaggio14 text, dati_messaggio15 text, dati_messaggio16 text, dati_messaggio17 text, dati_messaggio18 text, dati_messaggio19 text, dati_messaggio20 text, datainserimento {$DATETIME})", $N_PHPR_DB_TYPE);
                                            }
                                            if (substr($nome_tabella, 0, 7) == "prenota") {
                                                esegui_query2("create table " . $N_PHPR_TAB_PRE . "{$nome_tabella} (idprenota integer primary key, idclienti integer, idappartamenti  varchar(100), iddatainizio integer, iddatafine integer, assegnazioneapp varchar(4), app_assegnabili text, num_persone integer, idprenota_compagna text, tariffa text, tariffesettimanali text, incompatibilita text, sconto float8, tariffa_tot float8, caparra float8, commissioni float8, tasseperc float4, pagato float8, metodo_pagamento text, origine varchar(70), codice varchar(10), commento text, conferma varchar(4), checkin {$DATETIME}, checkout {$DATETIME}, id_anni_prec text, datainserimento {$DATETIME}, hostinserimento varchar(50), data_modifica {$DATETIME}, utente_inserimento integer )", $N_PHPR_DB_TYPE);
                                            }
                                            if (substr($nome_tabella, 0, 12) == "costiprenota") {
                                                esegui_query2("create table " . $N_PHPR_TAB_PRE . "{$nome_tabella} (idcostiprenota integer primary key, idprenota integer, tipo varchar(2), nome varchar(40), valore float8, valore_perc float8, arrotonda float4, tasseperc float4, associasett varchar(1), settimane text, moltiplica text, categoria text, letto varchar(1), numlimite integer, idntariffe integer, variazione varchar(10), varmoltiplica text, varnumsett varchar(20), varperiodipermessi text, varbeniinv text, varappincompatibili text, vartariffeassociate varchar(10), vartariffeincomp text, datainserimento {$DATETIME}, hostinserimento varchar(50), utente_inserimento integer)", $N_PHPR_DB_TYPE);
                                                crea_indice2($N_PHPR_TAB_PRE . $nome_tabella, "idprenota", $N_PHPR_TAB_PRE . "iidp" . $nome_tabella, $N_PHPR_DB_TYPE);
                                            } else {
                                                if (substr($nome_tabella, 0, 5) == "costi") {
                                                    esegui_query2("create table " . $N_PHPR_TAB_PRE . "{$nome_tabella} (idcosti integer unique,nome_costo text, val_costo float8, tipo_costo text, nome_cassa varchar(70), persona_costo text, provenienza_costo text, metodo_pagamento text, datainserimento {$DATETIME}, hostinserimento varchar(50), utente_inserimento integer)", $N_PHPR_DB_TYPE);
                                                }
                                            }
                                            if (substr($nome_tabella, 0, 15) == "rclientiprenota") {
                                                esegui_query2("create table " . $N_PHPR_TAB_PRE . "{$nome_tabella} (idprenota integer, idclienti integer, num_ordine integer, parentela varchar(70), datainserimento {$DATETIME}, hostinserimento varchar(50), utente_inserimento integer )", $N_PHPR_DB_TYPE);
                                                crea_indice2($N_PHPR_TAB_PRE . $nome_tabella, "idprenota", $N_PHPR_TAB_PRE . "iidp" . $nome_tabella, $N_PHPR_DB_TYPE);
                                            }
                                            # fine if (substr($nome_tabella,0,15) == "rclientiprenota")
                                            if (substr($nome_tabella, 0, 6) == "regole") {
                                                esegui_query2("create table " . $N_PHPR_TAB_PRE . "{$nome_tabella} (idregole integer, app_agenzia varchar(100), tariffa_chiusa text, tariffa_per_app text, tariffa_per_utente text, tariffa_per_persone text, tariffa_commissioni integer, iddatainizio integer, iddatafine integer, motivazione text, motivazione2 text )", $N_PHPR_DB_TYPE);
                                            }
                                            if (substr($nome_tabella, 0, 5) == "soldi") {
                                                esegui_query2("create table " . $N_PHPR_TAB_PRE . "{$nome_tabella} (idsoldi integer unique, motivazione text, id_pagamento text, metodo_pagamento text, saldo_prenota float8, saldo_cassa float8, soldi_prima float8, data_inserimento {$DATETIME}, utente_inserimento integer )", $N_PHPR_DB_TYPE);
                                            }
                                            if (substr($nome_tabella, 0, 7) == "periodi") {
                                                esegui_query2("create table " . $N_PHPR_TAB_PRE . "{$nome_tabella} (idperiodi integer primary key, datainizio date not null, datafine date{$lista_tariffe})", $N_PHPR_DB_TYPE);
                                            }
                                            if (substr($nome_tabella, 0, 8) == "ntariffe") {
                                                esegui_query2("create table " . $N_PHPR_TAB_PRE . "{$nome_tabella} (idntariffe integer, nomecostoagg varchar(40), tipo_ca varchar(2), valore_ca float8, valore_perc_ca float8, arrotonda_ca float4, tasseperc_ca float4, associasett_ca varchar(1), numsett_ca varchar(20), moltiplica_ca text, periodipermessi_ca text, beniinv_ca text, appincompatibili_ca text, variazione_ca varchar(20), mostra_ca varchar(10), categoria_ca text, letto_ca varchar(1), numlimite_ca integer, regoleassegna_ca varchar(30), utente_inserimento integer{$lista_tariffe})", $N_PHPR_DB_TYPE);
                                            }
                                        }
                                        # fine if ($linea == "</colonnetabella>" and $leggendo_righe != "SI")
                                        if ($leggendo_colonne == "SI") {
                                            if (substr($linea, 0, 13) == "<nomecolonna>") {
                                                $num_colonne++;
                                                $nome_colonna[$num_colonne] = substr($linea, 13);
                                                $nome_colonna[$num_colonne] = substr($nome_colonna[$num_colonne], 0, -14);
                                                if (substr($nome_tabella, 0, 7) == "periodi" and substr($nome_colonna[$num_colonne], 0, 7) == "tariffa") {
                                                    $lista_tariffe .= ", " . $nome_colonna[$num_colonne] . " float8";
                                                }
                                                if (substr($nome_tabella, 0, 8) == "ntariffe" and substr($nome_colonna[$num_colonne], 0, 7) == "tariffa") {
                                                    $lista_tariffe .= ", " . $nome_colonna[$num_colonne] . " varchar(40)";
                                                }
                                            }
                                            # fine if (substr($linea,0,13) == "<nomecolonna>")
                                            if (substr($linea, 0, 13) == "<tipocolonna>") {
                                                $tipo_colonna[$num_colonne] = substr($linea, 13);
                                                $tipo_colonna[$num_colonne] = substr($tipo_colonna[$num_colonne], 0, -14);
                                            }
                                            # fine if (substr($linea,0,13) == "<tipocolonna>")
                                        }
                                        # fine if ($leggendo_colonne == "SI")
                                        if ($linea == "<colonnetabella>" and $leggendo_righe != "SI") {
                                            $leggendo_colonne = "SI";
                                            $num_colonne = 0;
                                            $lista_tariffe = "";
                                        }
                                        # fine if ($linea == "<colonnetabella>" and $leggendo_righe != "SI")
                                        if ($linea == "</righetabella>") {
                                            $leggendo_righe = "NO";
                                        }
                                        if ($leggendo_righe == "SI") {
                                            if (substr($linea, 0, 6) == "<riga>") {
                                                $riga = substr($linea, 11);
                                            } else {
                                                $riga .= "\n" . $linea;
                                            }
                                            # fine else if (substr($linea,0,6) == "<riga>")
                                            if (substr($linea, -7) == "</riga>") {
                                                $riga = substr($riga, 0, -13);
                                                $riga = explode("</cmp><cmp>", $riga);
                                                $lista_valori = "";
                                                $query = "insert into " . $N_PHPR_TAB_PRE . "{$nome_tabella} (";
                                                for ($num2 = 0; $num2 < count($riga); $num2++) {
                                                    aggslashdb2($riga[$num2], $N_PHPR_DB_TYPE);
                                                    if ($riga[$num2] != "") {
                                                        $query .= $nome_colonna[$num2 + 1] . ",";
                                                    }
                                                }
                                                # fine for $num2
                                                $query = substr($query, 0, -1) . ") values (";
                                                for ($num2 = 0; $num2 < count($riga); $num2++) {
                                                    if ($riga[$num2] != "") {
                                                        $riga[$num2] = str_replace("</righetabella@%&@>", "</righetabella>", $riga[$num2]);
                                                        $riga[$num2] = str_replace("</riga@%&@>", "</riga>", $riga[$num2]);
                                                        $riga[$num2] = str_replace("<riga@%&@>", "<riga>", $riga[$num2]);
                                                        $riga[$num2] = str_replace("</cmp@%&@>", "</cmp>", $riga[$num2]);
                                                        $riga[$num2] = str_replace("@%&@@%&@", "@%&@", $riga[$num2]);
                                                        $query .= "'" . $riga[$num2] . "',";
                                                    }
                                                    # fine if ($riga[$num2] != "")
                                                }
                                                # fine for $num2
                                                $query = substr($query, 0, -1) . ")";
                                                #echo $query<br>";
                                                esegui_query3($query, $N_PHPR_DB_TYPE);
                                            }
                                            # fine if (substr($linea,-7) == "</riga>")
                                        }
                                        # fine if ($leggendo_righe == "SI")
                                        if ($linea == "<righetabella>") {
                                            $leggendo_righe = "SI";
                                            $linee_inserite_in_tabella[$nome_tabella] = 0;
                                        }
                                        # fine if ($linea == "<righetabella>")
                                    }
                                    # fine if ($leggendo_tabella == "SI")
                                    if ($linea == "<tabella>" and $leggendo_righe != "SI") {
                                        $leggendo_tabella = "SI";
                                    }
                                } else {
                                    # restore dei files
                                    if ($linea == "</file>") {
                                        $leggendo_file = "NO";
                                    }
                                    if ($leggendo_file == "SI") {
                                        if ($nome_file) {
                                            if ($leggendo_contenuto == "SI") {
                                                if (substr($linea, -12) == "</contenuto>") {
                                                    $nome_file = "";
                                                    $leggendo_contenuto = "NO";
                                                    $linea = substr($linea, 0, -12);
                                                    fwrite($fileaperto, $linea);
                                                    fclose($fileaperto);
                                                } else {
                                                    fwrite($fileaperto, $linea . "\n");
                                                }
                                                # fine else if (substr($linea,-12) == "</contenuto>")
                                            }
                                            # fine if ($leggendo_contenuto == "SI")
                                            if ($linea == "<contenuto>") {
                                                $leggendo_contenuto = "SI";
                                            }
                                        }
                                        # fine if ($nome_file)
                                        if (substr($linea, 0, 10) == "<nomefile>") {
                                            $nome_file = substr($linea, 10);
                                            $nome_file = substr($nome_file, 0, -11);
                                            if (substr($nome_file, 0, 7) == "./data/") {
                                                $nome_file = C_DATA_PATH . substr($nome_file, 6);
                                            }
                                            if ($nome_file) {
                                                $fileaperto = fopen("{$nome_file}", "w+");
                                            }
                                        }
                                        # fine if (substr($linea,0,10) == "<nomefile>")
                                    }
                                    # fine if ($leggendo_file == "SI")
                                    if ($linea == "<file>" and $leggendo_modello != "SI") {
                                        $leggendo_file = "SI";
                                    }
                                }
                                # fine else if ($leggendo_database == "SI")
                                if ($linea == "<database>" and $leggendo_modello != "SI") {
                                    $leggendo_database = "SI";
                                }
                                # restore dei modelli
                                if ($linea == "</modello>") {
                                    $leggendo_modello = "NO";
                                    $leggendo_contenuto_mod = "NO";
                                    $nome_modello = "";
                                }
                                # fine if ($linea == "</modello>")
                                if ($leggendo_modello == "SI") {
                                    if ($nome_modello) {
                                        if ($leggendo_contenuto_mod == "SI") {
                                            if (substr($linea, -12) == "</contenuto>") {
                                                $leggendo_contenuto_mod = "NO";
                                                $linea = substr($linea, 0, -12);
                                                $contenuto_mod[$dir_modello][$nome_modello] .= $linea . "\n";
                                                $nome_modello = "";
                                            } else {
                                                $contenuto_mod[$dir_modello][$nome_modello] .= $linea . "\n";
                                            }
                                            # fine else if (substr($linea,-12) == "</contenuto>")
                                        }
                                        # fine if ($leggendo_contenuto_mod == "SI")
                                        if ($linea == "<contenuto>") {
                                            $leggendo_contenuto_mod = "SI";
                                        }
                                    } else {
                                        if (substr($linea, 0, 12) == "<dirmodello>") {
                                            $dir_modello = substr($linea, 12);
                                            $dir_modello = substr($dir_modello, 0, -13);
                                            if (substr($dir_modello, -1) == "/") {
                                                $dir_modello = substr($dir_modello, 0, -1);
                                            }
                                            if (defined("C_CARTELLA_CREA_MODELLI") and C_CARTELLA_CREA_MODELLI != "") {
                                                $c_cartella_crea_mod = C_CARTELLA_CREA_MODELLI;
                                                if (substr($c_cartella_crea_mod, -1) == "/") {
                                                    $c_cartella_crea_mod = substr($c_cartella_crea_mod, 0, -1);
                                                }
                                                if (substr($dir_modello . "/", 0, strlen($c_cartella_crea_mod . "/")) != $c_cartella_crea_mod . "/") {
                                                    $dir_modello = "";
                                                }
                                                if (str_replace("..", "", $dir_modello) != $dir_modello) {
                                                    $dir_modello = "";
                                                }
                                            }
                                            # fine if (defined("C_CARTELLA_CREA_MODELLI") and C_CARTELLA_CREA_MODELLI != "")
                                        }
                                        # fine if (substr($linea,0,12) == "<dirmodello>")
                                        if (substr($linea, 0, 13) == "<nomemodello>" and $dir_modello) {
                                            $nome_modello = substr($linea, 13);
                                            $nome_modello = substr($nome_modello, 0, -14);
                                            if (substr($nome_modello, -4) != ".php") {
                                                $nome_modello = "";
                                            }
                                            if (str_replace(".php", "", substr($nome_modello, 0, -4)) != substr($nome_modello, 0, -4)) {
                                                $nome_modello = "";
                                            }
                                        }
                                        # fine if (substr($linea,0,13) == "<nomemodello>" and $dir_modello)
                                    }
                                    # fine else if ($nome_modello)
                                }
                                # fine if ($leggendo_modello == "SI")
                                if ($linea == "<modello>" and $leggendo_database != "SI" and $leggendo_file != "SI") {
                                    $leggendo_modello = "SI";
                                }
                            }
                            # fine if ($leggendo_backup == "SI")
                            if ($linea == "<backup>") {
                                $leggendo_backup = "SI";
                            }
                        }
                        # fine for $num1
                    }
                    # fine while (!feof($fbackup))
                    fclose($fbackup);
                    echo "<br>";
                }
                # fine if ($fbackup)
                # Se si sono mantenuti gli anni non presenti nel backup, aggiorno i loro data ed importo eventuali clienti mancanti
                if ($mantieni_anni and @is_array($anno_mantieni)) {
                    for ($num1 = 0; $num1 < $num_anni_vecchi; $num1++) {
                        $anno_vecchio = risul_query($anni_vecchi, $num1, 'idanni');
                        if ($anno_mantieni[$anno_vecchio]) {
                            esegui_query("insert into " . $PHPR_TAB_PRE . "anni (idanni,tipo_periodi) values ('{$anno_vecchio}','" . risul_query($anni_vecchi, $num1, 'tipo_periodi') . "') ");
                        }
                        # fine if ($anno_mantieni[$anno_vecchio])
                    }
                    # fine for $num1
                    unset($id_utenti_vecchi);
                    $id_utenti_vecchi[1] = 1;
                    for ($num1 = 0; $num1 < numlin_query($utenti_vecchi); $num1++) {
                        $idutente_vecchio = risul_query($utenti_vecchi, $num1, 'idutenti');
                        if ($idutente_vecchio != 1) {
                            $datainserimento = risul_query($utenti_vecchi, $num1, 'datainserimento');
                            if (!$datainserimento) {
                                $cond_datainserimento = "datainserimento is NULL";
                            } else {
                                $cond_datainserimento = "datainserimento = '" . aggslashdb($datainserimento) . "'";
                            }
                            $hostinserimento = risul_query($utenti_vecchi, $num1, 'hostinserimento');
                            if (!strcmp($hostinserimento, "")) {
                                $cond_hostinserimento = "(hostinserimento is NULL or hostinserimento = '')";
                            } else {
                                $cond_hostinserimento = "hostinserimento = '" . aggslashdb($hostinserimento) . "'";
                            }
                            $utente_esistente = esegui_query("select idutenti from " . $PHPR_TAB_PRE . "utenti where idutenti = '{$idutente_vecchio}' and {$cond_datainserimento} and {$cond_hostinserimento} ");
                            if (!numlin_query($utente_esistente)) {
                                reset($anno_mantieni);
                                while (list($anno_vecchio, $val) = each($anno_mantieni)) {
                                    esegui_query("update " . $PHPR_TAB_PRE . "prenota{$anno_vecchio} set utente_inserimento = '1' where utente_inserimento = '{$idutente_vecchio}' ");
                                    esegui_query("update " . $PHPR_TAB_PRE . "costi{$anno_vecchio} set utente_inserimento = '1' where utente_inserimento = '{$idutente_vecchio}' ");
                                    esegui_query("update " . $PHPR_TAB_PRE . "costiprenota{$anno_vecchio} set utente_inserimento = '1' where utente_inserimento = '{$idutente_vecchio}' ");
                                    esegui_query("update " . $PHPR_TAB_PRE . "rclientiprenota{$anno_vecchio} set utente_inserimento = '1' where utente_inserimento = '{$idutente_vecchio}' ");
                                    esegui_query("update " . $PHPR_TAB_PRE . "soldi{$anno_vecchio} set utente_inserimento = '1' where utente_inserimento = '{$idutente_vecchio}' ");
                                    if (@is_file(C_DATA_PATH . "/selectperiodi{$anno_vecchio}.{$idutente_vecchio}.php")) {
                                        unlink(C_DATA_PATH . "/selectperiodi{$anno_vecchio}.{$idutente_vecchio}.php");
                                    }
                                    if (@is_file(C_DATA_PATH . "/selperiodimenu{$anno_vecchio}.{$idutente_vecchio}.php")) {
                                        unlink(C_DATA_PATH . "/selperiodimenu{$anno_vecchio}.{$idutente_vecchio}.php");
                                    }
                                }
                                # fine while (list($anno_vecchio,$val) = each($anno_mantieni))
                                $id_utenti_vecchi[$idutente_vecchio] = 1;
                            } else {
                                $id_utenti_vecchi[$idutente_vecchio] = $idutente_vecchio;
                            }
                        }
                        # fine if ($idutente_vecchio != 1)
                    }
                    # fine for $num1
                    unset($id_clienti_vecchi);
                    unset($id_clienti_inseriti);
                    $max_clienti = esegui_query("select max(idclienti) from " . $PHPR_TAB_PRE . "clienti");
                    $max_clienti = risul_query($max_clienti, 0, 0);
                    if ($max_clienti_vecchi > $max_clienti) {
                        $max_clienti = $max_clienti_vecchi;
                    }
                    for ($num1 = 0; $num1 < numlin_query($clienti_vecchi); $num1++) {
                        $idcliente_vecchio = risul_query($clienti_vecchi, $num1, 'idclienti');
                        $cliente_presente = 0;
                        reset($anno_mantieni);
                        while (list($anno_vecchio, $val) = each($anno_mantieni)) {
                            $idcliente_presente = esegui_query("select idclienti from " . $PHPR_TAB_PRE . "prenota{$anno_vecchio} where idclienti = '{$idcliente_vecchio}' ");
                            $idcliente_presente2 = esegui_query("select idclienti from " . $PHPR_TAB_PRE . "rclientiprenota{$anno_vecchio} where idclienti = '{$idcliente_vecchio}' ");
                            $idcliente_presente3 = esegui_query("select idsoldi from " . $PHPR_TAB_PRE . "soldi{$anno_vecchio} where motivazione {$LIKE} '{$idcliente_vecchio};%' ");
                            if (numlin_query($idcliente_presente) or numlin_query($idcliente_presente2) or numlin_query($idcliente_presente3)) {
                                $cliente_presente = 1;
                                break;
                            }
                            # fine if (numlin_query($idcliente_presente) or numlin_query($idcliente_presente2) or...
                        }
                        # fine while (list($anno_vecchio,$val) = each($anno_mantieni))
                        if ($cliente_presente) {
                            $datainserimento = risul_query($clienti_vecchi, $num1, 'datainserimento');
                            if (!$datainserimento) {
                                $cond_datainserimento = "datainserimento is NULL";
                            } else {
                                $cond_datainserimento = "datainserimento = '" . aggslashdb($datainserimento) . "'";
                            }
                            $hostinserimento = risul_query($clienti_vecchi, $num1, 'hostinserimento');
                            if (!strcmp($hostinserimento, "")) {
                                $cond_hostinserimento = "(hostinserimento is NULL or hostinserimento = '')";
                            } else {
                                $cond_hostinserimento = "hostinserimento = '" . aggslashdb($hostinserimento) . "'";
                            }
                            $cliente_esistente = esegui_query("select idclienti from " . $PHPR_TAB_PRE . "clienti where idclienti = '{$idcliente_vecchio}' and {$cond_datainserimento} and {$cond_hostinserimento} ");
                            if (!numlin_query($cliente_esistente)) {
                                $cliente_esistente = esegui_query("select idclienti from " . $PHPR_TAB_PRE . "clienti where cognome = '" . aggslashdb(risul_query($clienti_vecchi, $num1, 'cognome')) . "' and {$cond_datainserimento} and {$cond_hostinserimento} ");
                                if (numlin_query($cliente_esistente) == 1) {
                                    $id_nuovo = risul_query($cliente_esistente, 0, 'idclienti');
                                } else {
                                    $id_esistente = esegui_query("select idclienti from " . $PHPR_TAB_PRE . "clienti where idclienti = '{$idcliente_vecchio}' ");
                                    if (numlin_query($id_esistente)) {
                                        $max_clienti++;
                                        $id_nuovo = $max_clienti;
                                    } else {
                                        $id_nuovo = $idcliente_vecchio;
                                    }
                                    esegui_query("insert into " . $PHPR_TAB_PRE . "clienti (idclienti,cognome,nome,soprannome,sesso,titolo,lingua,cittanascita,regionenascita,nazionenascita,documento,tipodoc,cittadoc,regionedoc,nazionedoc,nazionalita,nazione,regione,citta,via,numcivico,cap,telefono,telefono2,telefono3,fax,email,cod_fiscale,partita_iva,commento,max_num_ordine,idclienti_compagni,doc_inviati,hostinserimento,utente_inserimento) values ('{$id_nuovo}',\n'" . aggslashdb(risul_query($clienti_vecchi, $num1, 'cognome')) . "',\n'" . aggslashdb(risul_query($clienti_vecchi, $num1, 'nome')) . "',\n'" . aggslashdb(risul_query($clienti_vecchi, $num1, 'soprannome')) . "',\n'" . aggslashdb(risul_query($clienti_vecchi, $num1, 'sesso')) . "',\n'" . aggslashdb(risul_query($clienti_vecchi, $num1, 'titolo')) . "',\n'" . aggslashdb(risul_query($clienti_vecchi, $num1, 'lingua')) . "',\n'" . aggslashdb(risul_query($clienti_vecchi, $num1, 'cittanascita')) . "',\n'" . aggslashdb(risul_query($clienti_vecchi, $num1, 'regionenascita')) . "',\n'" . aggslashdb(risul_query($clienti_vecchi, $num1, 'nazionenascita')) . "',\n'" . aggslashdb(risul_query($clienti_vecchi, $num1, 'documento')) . "',\n'" . aggslashdb(risul_query($clienti_vecchi, $num1, 'tipodoc')) . "',\n'" . aggslashdb(risul_query($clienti_vecchi, $num1, 'cittadoc')) . "',\n'" . aggslashdb(risul_query($clienti_vecchi, $num1, 'regionedoc')) . "',\n'" . aggslashdb(risul_query($clienti_vecchi, $num1, 'nazionedoc')) . "',\n'" . aggslashdb(risul_query($clienti_vecchi, $num1, 'nazionalita')) . "',\n'" . aggslashdb(risul_query($clienti_vecchi, $num1, 'nazione')) . "',\n'" . aggslashdb(risul_query($clienti_vecchi, $num1, 'regione')) . "',\n'" . aggslashdb(risul_query($clienti_vecchi, $num1, 'citta')) . "',\n'" . aggslashdb(risul_query($clienti_vecchi, $num1, 'via')) . "',\n'" . aggslashdb(risul_query($clienti_vecchi, $num1, 'numcivico')) . "',\n'" . aggslashdb(risul_query($clienti_vecchi, $num1, 'cap')) . "',\n'" . aggslashdb(risul_query($clienti_vecchi, $num1, 'telefono')) . "',\n'" . aggslashdb(risul_query($clienti_vecchi, $num1, 'telefono2')) . "',\n'" . aggslashdb(risul_query($clienti_vecchi, $num1, 'telefono3')) . "',\n'" . aggslashdb(risul_query($clienti_vecchi, $num1, 'fax')) . "',\n'" . aggslashdb(risul_query($clienti_vecchi, $num1, 'email')) . "',\n'" . aggslashdb(risul_query($clienti_vecchi, $num1, 'cod_fiscale')) . "',\n'" . aggslashdb(risul_query($clienti_vecchi, $num1, 'partita_iva')) . "',\n'" . aggslashdb(risul_query($clienti_vecchi, $num1, 'commento')) . "',\n'" . aggslashdb(risul_query($clienti_vecchi, $num1, 'max_num_ordine')) . "',\n'" . aggslashdb(risul_query($clienti_vecchi, $num1, 'idclienti_compagni')) . "',\n'" . aggslashdb(risul_query($clienti_vecchi, $num1, 'doc_inviati')) . "',\n'" . aggslashdb($hostinserimento) . "',\n'" . $id_utenti_vecchi[risul_query($clienti_vecchi, $num1, 'utente_inserimento')] . "') ");
                                    $datanascita = risul_query($clienti_vecchi, $num1, 'datanascita');
                                    if ($datanascita) {
                                        esegui_query("update " . $PHPR_TAB_PRE . "clienti set datanascita = '" . aggslashdb($datanascita) . "' where idclienti = '{$id_nuovo}' ");
                                    }
                                    $scadenzadoc = risul_query($clienti_vecchi, $num1, 'scadenzadoc');
                                    if ($scadenzadoc) {
                                        esegui_query("update " . $PHPR_TAB_PRE . "clienti set scadenzadoc = '" . aggslashdb($scadenzadoc) . "' where idclienti = '{$id_nuovo}' ");
                                    }
                                    if ($datainserimento) {
                                        esegui_query("update " . $PHPR_TAB_PRE . "clienti set datainserimento = '" . aggslashdb($datainserimento) . "' where idclienti = '{$id_nuovo}' ");
                                    }
                                    $id_clienti_inseriti[$idcliente_vecchio] = $id_nuovo;
                                }
                                # fine else if (numlin_query($cliente_esistente) == 1)
                                $id_clienti_vecchi[$idcliente_vecchio] = $id_nuovo;
                                if ($id_nuovo != $idcliente_vecchio) {
                                    reset($anno_mantieni);
                                    while (list($anno_vecchio, $val) = each($anno_mantieni)) {
                                        esegui_query("update " . $PHPR_TAB_PRE . "prenota{$anno_vecchio} set idclienti = '{$id_nuovo}' where idclienti = '{$idcliente_vecchio}' ");
                                        esegui_query("update " . $PHPR_TAB_PRE . "rclientiprenota{$anno_vecchio} set idclienti = '{$id_nuovo}' where idclienti = '{$idcliente_vecchio}' ");
                                        $storia_soldi = esegui_query("select * from " . $PHPR_TAB_PRE . "soldi{$anno_vecchio} where motivazione {$LIKE} '{$idcliente_vecchio};%' ");
                                        for ($num2 = 0; $num2 < numlin_query($storia_soldi); $num2++) {
                                            $idsoldi = risul_query($storia_soldi, $num2, 'idsoldi');
                                            $motivazione = risul_query($storia_soldi, $num2, 'motivazione');
                                            $motivazione = $id_nuovo . substr($motivazione, strlen($idcliente_vecchio));
                                            esegui_query("update " . $PHPR_TAB_PRE . "soldi{$anno_vecchio} set motivazione = '{$motivazione}' where idsoldi = '{$idsoldi}' ");
                                        }
                                        # fine for $num2
                                    }
                                    # fine while (list($anno_vecchio,$val) = each($anno_mantieni))
                                }
                                # fine if ($id_nuovo != $idcliente_vecchio)
                            } else {
                                $id_clienti_vecchi[$idcliente_vecchio] = $idcliente_vecchio;
                            }
                        }
                        # fine if ($cliente_presente)
                    }
                    # fine for $num1
                    if (@is_array($id_clienti_inseriti)) {
                        reset($id_clienti_inseriti);
                        while (list($idcliente_vecchio, $id_nuovo) = each($id_clienti_inseriti)) {
                            $n_idclienti_compagni = ",";
                            $idclienti_compagni = esegui_query("select idclienti_compagni from " . $PHPR_TAB_PRE . "clienti where idclienti = '{$id_nuovo}' ");
                            $idclienti_compagni = risul_query($idclienti_compagni, 0, 'idclienti_compagni');
                            $idclienti_compagni_vett = explode(",", $idclienti_compagni);
                            for ($num1 = 1; $num1 < count($idclienti_compagni_vett) - 1; $num1++) {
                                if ($id_clienti_vecchi[$idclienti_compagni_vett[$num1]]) {
                                    $n_idclienti_compagni .= $id_clienti_vecchi[$idclienti_compagni_vett[$num1]] . ",";
                                }
                            }
                            # fine for $num1
                            if ($n_idclienti_compagni != $idclienti_compagni) {
                                esegui_query("update " . $PHPR_TAB_PRE . "clienti set idclienti_compagni = '{$n_idclienti_compagni}' where idclienti = '{$id_nuovo}' ");
                            }
                        }
                        # fine while (list($idcliente_vecchio,$id_nuovo) = each($id_clienti_inseriti))
                    }
                    # fine if (@is_array($id_clienti_inseriti))
                    for ($num1 = 0; $num1 < numlin_query($privilegi_vecchi); $num1++) {
                        $anno_priv = risul_query($privilegi_vecchi, $num1, 'anno');
                        if ($anno_mantieni[$anno_priv]) {
                            $idutente_priv = risul_query($privilegi_vecchi, $num1, 'idutente');
                            if ($id_utenti_vecchi[$idutente_priv] != 1) {
                                esegui_query("insert into " . $PHPR_TAB_PRE . "privilegi (idutente,anno,regole1_consentite,tariffe_consentite,costi_agg_consentiti,contratti_consentiti,priv_ins_prenota,priv_mod_prenota,priv_mod_pers,priv_ins_clienti,prefisso_clienti,priv_ins_costi,priv_vedi_tab,priv_ins_tariffe,priv_ins_regole,priv_messaggi,priv_inventario) values ('{$idutente_priv}','{$anno_priv}',\n'" . aggslashdb(risul_query($privilegi_vecchi, $num1, 'regole1_consentite')) . "',\n'" . aggslashdb(risul_query($privilegi_vecchi, $num1, 'tariffe_consentite')) . "',\n'" . aggslashdb(risul_query($privilegi_vecchi, $num1, 'costi_agg_consentiti')) . "',\n'" . aggslashdb(risul_query($privilegi_vecchi, $num1, 'contratti_consentiti')) . "',\n'" . aggslashdb(risul_query($privilegi_vecchi, $num1, 'priv_ins_prenota')) . "',\n'" . aggslashdb(risul_query($privilegi_vecchi, $num1, 'priv_mod_prenota')) . "',\n'" . aggslashdb(risul_query($privilegi_vecchi, $num1, 'priv_mod_pers')) . "',\n'" . aggslashdb(risul_query($privilegi_vecchi, $num1, 'priv_ins_clienti')) . "',\n'" . aggslashdb(risul_query($privilegi_vecchi, $num1, 'prefisso_clienti')) . "',\n'" . aggslashdb(risul_query($privilegi_vecchi, $num1, 'priv_ins_costi')) . "',\n'" . aggslashdb(risul_query($privilegi_vecchi, $num1, 'priv_vedi_tab')) . "',\n'" . aggslashdb(risul_query($privilegi_vecchi, $num1, 'priv_ins_tariffe')) . "',\n'" . aggslashdb(risul_query($privilegi_vecchi, $num1, 'priv_ins_regole')) . "',\n'" . aggslashdb(risul_query($privilegi_vecchi, $num1, 'priv_messaggi')) . "',\n'" . aggslashdb(risul_query($privilegi_vecchi, $num1, 'priv_inventario')) . "') ");
                            }
                            # fine if ($id_utenti_vecchi[$idutente_priv] != 1)
                        }
                        # fine if ($anno_mantieni[$anno_priv])
                    }
                    # fine for $num1
                    for ($num1 = 0; $num1 < numlin_query($personalizza_vecchi); $num1++) {
                        $idpersonalizza = risul_query($personalizza_vecchi, $num1, 'idpersonalizza');
                        if ($anno_mantieni[str_replace("giorno_vedi_ini_sett", "", $idpersonalizza)]) {
                            $idutente_pers = risul_query($personalizza_vecchi, $num1, 'idutente');
                            if ($id_utenti_vecchi[$idutente_pers] != 1) {
                                esegui_query("insert into " . $PHPR_TAB_PRE . "personalizza (idpersonalizza,idutente,valpersonalizza,valpersonalizza_num) values ('{$idpersonalizza}','{$idutente_pers}',\n'" . aggslashdb(risul_query($personalizza_vecchi, $num1, 'valpersonalizza')) . "',\n'" . aggslashdb(risul_query($personalizza_vecchi, $num1, 'valpersonalizza_num')) . "') ");
                            }
                            # fine if ($id_utenti_vecchi[$idutente_pers] != 1)
                        }
                        # fine if ($anno_mantieni[str_replace("giorno_vedi_ini_sett","",$idpersonalizza)])
                    }
                    # fine for $num1
                }
                # fine if ($mantieni_anni and @is_array($anno_mantieni))
                if ($silenzio != "SI") {
                    echo "" . mex("Database creato", $pag) . "<br>";
                }
                $fatto = "SI";
                if (($nuovo_db != "SI" or $database_esistente == "SI") and $character_set_db and ($character_set_db != "utf8" or $collation_db != "utf8_general_ci")) {
                    esegui_query2("alter database {$N_PHPR_DB_NAME} default character set '{$character_set_db}' collate '{$collation_db}'", $N_PHPR_DB_TYPE);
                }
                if (@is_array($contenuto_mod) and $N_PHPR_DB_TYPE == $PHPR_DB_TYPE) {
                    global $prima_parte_html, $lingua_mex;
                    echo "<br>";
                    $lingua_mex_orig = $lingua_mex;
                    if ($silenzio != "SI") {
                        $silenzio_mod = "SI";
                    } else {
                        $silenzio_mod = "totale";
                    }
                    global $anno_modello_presente, $num_periodi_date, $modello_esistente, $cambia_frasi, $lingua_modello, $percorso_cartella_modello, $nome_file;
                    include C_DATA_PATH . "/lingua.php";
                    $lingua_mex = $lingua[1];
                    $pag_orig = $pag;
                    $pag = "crea_modelli.php";
                    function assegna_var_conn_mod($N_PHPR_DB_TYPE, $N_PHPR_DB_NAME, $N_PHPR_DB_HOST, $N_PHPR_DB_PORT, $N_PHPR_DB_USER, $N_PHPR_DB_PASS, $N_PHPR_LOAD_EXT, $N_PHPR_TAB_PRE)
                    {
                        global $M_PHPR_DB_TYPE, $M_PHPR_DB_NAME, $M_PHPR_DB_HOST, $M_PHPR_DB_PORT, $M_PHPR_DB_USER, $M_PHPR_DB_PASS, $M_PHPR_LOAD_EXT, $M_PHPR_TAB_PRE;
                        $M_PHPR_DB_TYPE = $N_PHPR_DB_TYPE;
                        $M_PHPR_DB_NAME = $N_PHPR_DB_NAME;
                        $M_PHPR_DB_HOST = $N_PHPR_DB_HOST;
                        $M_PHPR_DB_PORT = $N_PHPR_DB_PORT;
                        $M_PHPR_DB_USER = $N_PHPR_DB_USER;
                        $M_PHPR_DB_PASS = $N_PHPR_DB_PASS;
                        $M_PHPR_LOAD_EXT = $N_PHPR_LOAD_EXT;
                        $M_PHPR_TAB_PRE = $N_PHPR_TAB_PRE;
                    }
                    # fine function assegna_var_conn_mod
                    $PHPR_TAB_PRE = $N_PHPR_TAB_PRE;
                    $tablepersonalizza = $PHPR_TAB_PRE . "personalizza";
                    include "./includes/funzioni_costi_agg.php";
                    include "./includes/templates/funzioni_modelli.php";
                    $modello_esistente = "SI";
                    $cambia_frasi = "NO";
                    include "./includes/templates/frasi_mod_disp.php";
                    include "./includes/templates/funzioni_mod_disp.php";
                    for ($num_cart = 0; $num_cart < $num_perc_cart_mod_vett; $num_cart++) {
                        $percorso_cartella_modello = $perc_cart_mod_vett[$num_cart];
                        if ($contenuto_mod[$percorso_cartella_modello]['mdl_disponibilita.php']) {
                            $lingua_modello = "ita";
                            $nome_file = mex2("mdl_disponibilita", $pag, $lingua_modello) . ".php";
                            $nome_file_tmp = substr($nome_file, 0, -4) . ".tmp";
                            $num_periodi_date = "";
                            $anno_modello = "";
                            scrivi_file("<?php exit(); ?>\n" . $contenuto_mod[$percorso_cartella_modello]["{$nome_file}"], "{$percorso_cartella_modello}/{$nome_file_tmp}");
                            recupera_var_modello_disponibilita($nome_file_tmp, $percorso_cartella_modello, $pag, $fr_frase, $num_frasi, $var_mod, $num_var_mod, $tipo_periodi, "SI", $anno_modello, $PHPR_TAB_PRE);
                            $prima_parte_html = str_replace("<?php exit(); ?>\n", "", $prima_parte_html);
                            if (substr($prima_parte_html, 0, 70) == "<?php if (!@\$framed and !@\$_GET['framed'] and !@\$_POST['framed']) { ?>") {
                                $prima_parte_html = substr($prima_parte_html, 70);
                            }
                            if (substr($prima_parte_html, 0, 74) == "<?php if (!@\$framed and !@\$_GET[\\'framed\\'] and !@\$_POST[\\'framed\\']) { ?>") {
                                $prima_parte_html = substr($prima_parte_html, 74);
                            }
                            unlink("{$percorso_cartella_modello}/{$nome_file_tmp}");
                            assegna_var_conn_mod($N_PHPR_DB_TYPE, $N_PHPR_DB_NAME, $N_PHPR_DB_HOST, $N_PHPR_DB_PORT, $N_PHPR_DB_USER, $N_PHPR_DB_PASS, $N_PHPR_LOAD_EXT, $N_PHPR_TAB_PRE);
                            $anno_modello = $anno_modello_presente;
                            crea_modello_disponibilita($percorso_cartella_modello, $anno_modello, $PHPR_TAB_PRE, $pag, $lingua_modello, $silenzio_mod, $fr_frase, $frase, $num_frasi, $tipo_periodi);
                        }
                        # fine if ($contenuto_mod[$percorso_cartella_modello]["mdl_disponibilita.php"])
                    }
                    # fine for $num_cart
                    $lang_dir = opendir("./includes/lang/");
                    include C_DATA_PATH . "/lingua.php";
                    while ($ini_lingua = readdir($lang_dir)) {
                        if ($ini_lingua != "." && $ini_lingua != "..") {
                            $nome_file = mex2("mdl_disponibilita", $pag, $ini_lingua) . ".php";
                            $nome_file_tmp = substr($nome_file, 0, -4) . ".tmp";
                            for ($num_cart = 0; $num_cart < $num_perc_cart_mod_vett; $num_cart++) {
                                $percorso_cartella_modello = $perc_cart_mod_vett[$num_cart];
                                if ($contenuto_mod[$percorso_cartella_modello][$nome_file]) {
                                    $lingua_modello = $ini_lingua;
                                    $num_periodi_date = "";
                                    $anno_modello = "";
                                    scrivi_file("<?php exit(); ?>\n" . $contenuto_mod[$percorso_cartella_modello][$nome_file], "{$percorso_cartella_modello}/{$nome_file_tmp}");
                                    recupera_var_modello_disponibilita($nome_file_tmp, $percorso_cartella_modello, $pag, $fr_frase, $num_frasi, $var_mod, $num_var_mod, $tipo_periodi, "SI", $anno_modello, $PHPR_TAB_PRE);
                                    $prima_parte_html = str_replace("<?php exit(); ?>\n", "", $prima_parte_html);
                                    if (substr($prima_parte_html, 0, 70) == "<?php if (!@\$framed and !@\$_GET['framed'] and !@\$_POST['framed']) { ?>") {
                                        $prima_parte_html = substr($prima_parte_html, 70);
                                    }
                                    if (substr($prima_parte_html, 0, 74) == "<?php if (!@\$framed and !@\$_GET[\\'framed\\'] and !@\$_POST[\\'framed\\']) { ?>") {
                                        $prima_parte_html = substr($prima_parte_html, 74);
                                    }
                                    unlink("{$percorso_cartella_modello}/{$nome_file_tmp}");
                                    assegna_var_conn_mod($N_PHPR_DB_TYPE, $N_PHPR_DB_NAME, $N_PHPR_DB_HOST, $N_PHPR_DB_PORT, $N_PHPR_DB_USER, $N_PHPR_DB_PASS, $N_PHPR_LOAD_EXT, $N_PHPR_TAB_PRE);
                                    $anno_modello = $anno_modello_presente;
                                    crea_modello_disponibilita($percorso_cartella_modello, $anno_modello, $PHPR_TAB_PRE, $pag, $lingua_modello, $silenzio_mod, $fr_frase, $frase, $num_frasi, $tipo_periodi);
                                }
                                # fine if ($contenuto_mod[$percorso_cartella_modello][$nome_file])
                            }
                            # fine for $num_cart
                        }
                        # fine if ($file != "." && $file != "..")
                    }
                    # fine while ($file = readdir($lang_dig))
                    closedir($lang_dir);
                    $templates_dir = opendir("./includes/templates/");
                    while ($modello_ext = readdir($templates_dir)) {
                        if ($modello_ext != "." and $modello_ext != ".." and @is_dir("./includes/templates/{$modello_ext}")) {
                            include "./includes/templates/{$modello_ext}/name.php";
                            include "./includes/templates/{$modello_ext}/phrases.php";
                            include "./includes/templates/{$modello_ext}/functions.php";
                            $funz_recupera_var_modello = "recupera_var_modello_" . $modello_ext;
                            $funz_crea_modello = "crea_modello_" . $modello_ext;
                            $funz_mext = "mext_" . $modello_ext;
                            if ($template_file_name['ita']) {
                                $nome_file = $template_file_name['ita'];
                            } else {
                                $nome_file = "ita_" . $template_file_name["en"];
                            }
                            $nome_file_tmp = substr($nome_file, 0, -4) . ".tmp";
                            for ($num_cart = 0; $num_cart < $num_perc_cart_mod_vett; $num_cart++) {
                                $percorso_cartella_modello = $perc_cart_mod_vett[$num_cart];
                                if ($contenuto_mod[$percorso_cartella_modello][$nome_file]) {
                                    $lingua_modello = "ita";
                                    $num_periodi_date = "";
                                    $anno_modello = "";
                                    scrivi_file("<?php exit(); ?>\n" . $contenuto_mod[$percorso_cartella_modello][$nome_file], "{$percorso_cartella_modello}/{$nome_file_tmp}");
                                    $funz_recupera_var_modello($nome_file_tmp, $percorso_cartella_modello, $pag, $fr_frase, $num_frasi, $var_mod, $num_var_mod, $tipo_periodi, "SI", $anno_modello, $PHPR_TAB_PRE);
                                    $prima_parte_html = str_replace("<?php exit(); ?>\n", "", $prima_parte_html);
                                    if (substr($prima_parte_html, 0, 70) == "<?php if (!@\$framed and !@\$_GET['framed'] and !@\$_POST['framed']) { ?>") {
                                        $prima_parte_html = substr($prima_parte_html, 70);
                                    }
                                    if (substr($prima_parte_html, 0, 74) == "<?php if (!@\$framed and !@\$_GET[\\'framed\\'] and !@\$_POST[\\'framed\\']) { ?>") {
                                        $prima_parte_html = substr($prima_parte_html, 74);
                                    }
                                    unlink("{$percorso_cartella_modello}/{$nome_file_tmp}");
                                    assegna_var_conn_mod($N_PHPR_DB_TYPE, $N_PHPR_DB_NAME, $N_PHPR_DB_HOST, $N_PHPR_DB_PORT, $N_PHPR_DB_USER, $N_PHPR_DB_PASS, $N_PHPR_LOAD_EXT, $N_PHPR_TAB_PRE);
                                    $anno_modello = $anno_modello_presente;
                                    $funz_crea_modello($percorso_cartella_modello, $anno_modello, $PHPR_TAB_PRE, $pag, $lingua_modello, $silenzio_mod, $fr_frase, $frase, $num_frasi, $tipo_periodi);
                                }
                                # fine if ($contenuto_mod[$percorso_cartella_modello][$nome_file])
                            }
                            # fine for $num_cart
                            $lang_dir = opendir("./includes/lang/");
                            while ($ini_lingua = readdir($lang_dir)) {
                                if ($ini_lingua != "." && $ini_lingua != "..") {
                                    if ($template_file_name[$ini_lingua]) {
                                        $nome_file = $template_file_name[$ini_lingua];
                                    } else {
                                        $nome_file = $ini_lingua . "_" . $template_file_name['en'];
                                    }
                                    $nome_file_tmp = substr($nome_file, 0, -4) . ".tmp";
                                    for ($num_cart = 0; $num_cart < $num_perc_cart_mod_vett; $num_cart++) {
                                        $percorso_cartella_modello = $perc_cart_mod_vett[$num_cart];
                                        if ($contenuto_mod[$percorso_cartella_modello][$nome_file]) {
                                            $lingua_modello = $ini_lingua;
                                            $num_periodi_date = "";
                                            $anno_modello = "";
                                            scrivi_file("<?php exit(); ?>\n" . $contenuto_mod[$percorso_cartella_modello]["{$nome_file}"], "{$percorso_cartella_modello}/{$nome_file_tmp}");
                                            $funz_recupera_var_modello($nome_file_tmp, $percorso_cartella_modello, $pag, $fr_frase, $num_frasi, $var_mod, $num_var_mod, $tipo_periodi, "SI", $anno_modello, $PHPR_TAB_PRE);
                                            $prima_parte_html = str_replace("<?php exit(); ?>\n", "", $prima_parte_html);
                                            if (substr($prima_parte_html, 0, 70) == "<?php if (!@\$framed and !@\$_GET['framed'] and !@\$_POST['framed']) { ?>") {
                                                $prima_parte_html = substr($prima_parte_html, 70);
                                            }
                                            if (substr($prima_parte_html, 0, 74) == "<?php if (!@\$framed and !@\$_GET[\\'framed\\'] and !@\$_POST[\\'framed\\']) { ?>") {
                                                $prima_parte_html = substr($prima_parte_html, 74);
                                            }
                                            unlink("{$percorso_cartella_modello}/{$nome_file_tmp}");
                                            assegna_var_conn_mod($N_PHPR_DB_TYPE, $N_PHPR_DB_NAME, $N_PHPR_DB_HOST, $N_PHPR_DB_PORT, $N_PHPR_DB_USER, $N_PHPR_DB_PASS, $N_PHPR_LOAD_EXT, $N_PHPR_TAB_PRE);
                                            $anno_modello = $anno_modello_presente;
                                            $funz_crea_modello($percorso_cartella_modello, $anno_modello, $PHPR_TAB_PRE, $pag, $lingua_modello, $silenzio_mod, $fr_frase, $frase, $num_frasi, $tipo_periodi);
                                        }
                                        # fine if ($contenuto_mod[$percorso_cartella_modello][$nome_file])
                                    }
                                    # fine for $num_cart
                                }
                                # fine if ($file != "." && $file != "..")
                            }
                            # fine while ($file = readdir($lang_dir))
                            closedir($lang_dir);
                        }
                        # fine if ($modello_ext != "." and $modello_ext != ".." and...
                    }
                    # fine while ($file = readdir($lang_dig))
                    closedir($templates_dir);
                    $pag = $pag_orig;
                    $lingua_mex = $lingua_mex_orig;
                }
                # fine if (@is_array($contenuto_mod) and...
            } else {
                if ($silenzio != "SI") {
                    echo mex("Non è stato possibile connettersi al nuovo database, controllare i data per la connessione, i privilegi dell' utente o il nome del database", $pag) . ".<br>";
                }
            }
        } else {
            if ($silenzio != "SI") {
                echo mex("Non è stato possibile creare il nuovo database, controllare i data per la connessione, i privilegi dell' utente, il nome del database o se esiste già un database chiamato", $pag) . " {$N_PHPR_DB_NAME}.<br>";
            }
        }
    }
    # fine else if ($file_coerente == "NO")
    return $fatto;
}