<?php

##################################################################################
#    HOTELDRUID
#    Copyright (C) 2001-2022 by Marco Maria Francesco De Santis (marco@digitaldruid.net)
#
#    This program is free software: you can redistribute it and/or modify
#    it under the terms of the GNU Affero General Public License as published by
#    the Free Software Foundation, either version 3 of the License, or
#    any later version accepted by Marco Maria Francesco De Santis, which
#    shall act as a proxy as defined in Section 14 of version 3 of the
#    license.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU Affero General Public License for more details.
#
#    You should have received a copy of the GNU Affero General Public License
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
##################################################################################


$pag = "crea_backup.php";
$titolo = "HotelDruid: Backup";

$var_pag = array();
$var_pag[0] = 'MAX_FILE_SIZE';
$var_pag[1] = 'backup_contratti';
$var_pag[2] = 'azione';
$var_pag[3] = 'upload_backup';
$var_pag[4] = 'compresso';
$var_pag[5] = 'ripristina_backup';
$var_pag[6] = 'modalita';
$var_pag[7] = 'contr_agg';
$var_pag[8] = 'crea_backup';
$var_pag[9] = 'anni_backup';
$var_pag[10] = 'dati_conn';
$var_pag[11] = 'mantieni_anni';
$var_pag[12] = 'continua';
$var_pag[13] = 'copia_def_backup';
$var_pag[14] = 'lingua';
$var_pag[15] = 'torna_a_contr';
$var_pag[16] = 'mostra_header';
$var_pag[17] = 'salva_backup';
$var_pag[18] = 'includi_modelli';
$var_pag[19] = 'cancella_backup';
$n_var_pag = 20;

include("./costanti.php");
include(C_DATI_PATH."/dati_connessione.php");
include("./includes/funzioni_$PHPR_DB_TYPE.php");
include("./includes/funzioni_backup.php");
$numconnessione = connetti_db_per_backup($PHPR_DB_TYPE,$PHPR_DB_NAME,$PHPR_DB_HOST,$PHPR_DB_PORT,$PHPR_DB_USER,$PHPR_DB_PASS,$PHPR_LOAD_EXT,$PHPR_TAB_PRE,$ext_pgsql_caricata,$ext_mysql_caricata);
include("./includes/funzioni.php");
$tableanni = $PHPR_TAB_PRE."anni";
$tableversioni = $PHPR_TAB_PRE."versioni";
$tableutenti = $PHPR_TAB_PRE."utenti";
$tablecontratti = $PHPR_TAB_PRE."contratti";
$tableprivilegi = $PHPR_TAB_PRE."privilegi";
$tablepersonalizza = $PHPR_TAB_PRE."personalizza";
$tablecache = $PHPR_TAB_PRE."cache";

if (defined("C_UTENTE_BACKUP_ESTERNO") and C_UTENTE_BACKUP_ESTERNO != "" and $utente_backup == C_UTENTE_BACKUP_ESTERNO and (!defined('C_VERSIONE_ATTUALE') or !defined('C_PHPR_VERSIONE_NUM') or (double) C_VERSIONE_ATTUALE == (double) C_PHPR_VERSIONE_NUM)) $id_utente = "b";
else $id_utente = controlla_login($numconnessione,$PHPR_TAB_PRE,$id_sessione,$nome_utente_phpr,$password_phpr,$anno);
if ($id_utente) {

if ($id_utente != 1 and $id_utente != "b") {
$privilegi_annuali_utente = esegui_query("select * from $tableprivilegi where idutente = '$id_utente' and anno = '$anno'");
if (numlin_query($privilegi_annuali_utente) == 0) $anno_utente_attivato = "NO";
else $anno_utente_attivato = "SI";
$privilegi_globali_utente = esegui_query("select * from $tableprivilegi where idutente = '$id_utente' and anno = '1'");
$priv_mod_pers = risul_query($privilegi_globali_utente,0,'priv_mod_pers');
$priv_crea_backup = substr($priv_mod_pers,1,1);
chiudi_query($privilegi_annuali_utente);
chiudi_query($privilegi_globali_utente);
} # fine if ($id_utente != 1 and $id_utente != "b")
else {
$priv_crea_backup = "s";
$anno_utente_attivato = "SI";
} # fine else if ($id_utente != 1 and $id_utente != "b")

if ($priv_crea_backup == "s") {

if ($id_utente == "b") {
$azione = "SI";
$upload_backup = "";
$cancella_backup = "";
$ripristina_backup = "";
$lingua_mex = "ita";
} # fine if ($id_utente == "b")


if (fixset($mostra_header) != "NO") {
$titolo = "HotelDruid: ".mex("Backup",$pag);
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");
} # fine if (fixset($mostra_header) != "NO")



if (fixset($azione) == "SI") {



if (!empty($crea_backup)) {
include_once("./includes/funzioni_$PHPR_DB_TYPE"."_extra.php");

if (!isset($backup_contratti) or $backup_contratti != "SI") {
$raggiunto_limite = 0;
if (defined('C_LIMITE_BACKUP_GIORNALIERI') and C_LIMITE_BACKUP_GIORNALIERI > 0 and $id_utente != "b") {
$tabelle_lock = array($tablecache);
$tabelle_lock = lock_tabelle($tabelle_lock);
$adesso = date("Y-m-d H:i:s",(time() + (C_DIFF_ORE * 3600)));
$oggi = substr($adesso,0,10);
esegui_query("delete from $tablecache where tipo = 'lim_back' and datainserimento < '$oggi 00:00:00' ");
$lim_back = esegui_query("select * from $tablecache where tipo = 'lim_back' and datainserimento >= '$oggi 00:00:00' ");
if (!numlin_query($lim_back)) esegui_query("insert into $tablecache (numero,tipo,data_modifica,datainserimento) values ('1','lim_back','$adesso','$adesso') ");
else {
$num_lim_back = risul_query($lim_back,0,'numero');
if ($num_lim_back >= C_LIMITE_BACKUP_GIORNALIERI) $raggiunto_limite = 1;
else esegui_query("update $tablecache set numero = '".($num_lim_back + 1)."', data_modifica = '$adesso' where tipo = 'lim_back' and datainserimento >= '$oggi 00:00:00' ");
} # fine else if (!numlin_query($lim_back))
unlock_tabelle($tabelle_lock);
} # fine if (defined('C_LIMITE_BACKUP_GIORNALIERI') and C_LIMITE_BACKUP_GIORNALIERI > 0 and $id_utente != "b")
if ($raggiunto_limite) echo mex("Raggiunto il limite giornaliero di backup",$pag)." (".C_LIMITE_BACKUP_GIORNALIERI.").<br>";
else {

$anni = esegui_query("select * from $tableanni order by idanni");
$num_anni = numlin_query($anni);

$cond_anni = "";
$cond_personalizza = "";
$cond_ic_e_priv = "";
if (!empty($anni_backup)) {
for ($num1 = 0 ; $num1 < $num_anni ; $num1++) {
$anno_reg = risul_query($anni,$num1,'idanni');
if (${'anno_sel'.$anno_reg}) {
if (!$cond_anni) $cond_anni = "where ";
else $cond_anni .= " or ";
$cond_anni .= "idanni = '$anno_reg'";
} # fine if (${'anno_sel'.$anno_reg})
else {
if (!$cond_personalizza) $cond_personalizza = "where ";
else $cond_personalizza .= " and ";
$cond_personalizza .= "idpersonalizza != 'giorno_vedi_ini_sett$anno_reg'";
if (!$cond_ic_e_priv) $cond_ic_e_priv = "where ";
else $cond_ic_e_priv .= " and ";
$cond_ic_e_priv .= "anno != '$anno_reg'";

} # fine else if (${'anno_sel'.$anno_reg})
} # fine for $num1
if (!$cond_anni) $anni_backup = "";
} # fine if (!empty($anni_backup))

$tabelle_lock = "";
$altre_tab_lock = array($tableanni);
$num_lock = 1;
$anno_trovato = 0;
for ($num1 = 0 ; $num1 < $num_anni ; $num1++) {
$altre_tab_lock[$num_lock] = $PHPR_TAB_PRE."prenota".risul_query($anni,$num1,'idanni');
$num_lock++;
} # fine for $num1
for ($num1 = 0 ; $num1 < $num_anni ; $num1++) {
$altre_tab_lock[$num_lock] = $PHPR_TAB_PRE."prenotacanc".risul_query($anni,$num1,'idanni');
$num_lock++;
} # fine for $num1
for ($num1 = 0 ; $num1 < $num_anni ; $num1++) {
$altre_tab_lock[$num_lock] = $PHPR_TAB_PRE."rclientiprenota".risul_query($anni,$num1,'idanni');
$num_lock++;
} # fine for $num1
for ($num1 = 0 ; $num1 < $num_anni ; $num1++) {
$altre_tab_lock[$num_lock] = $PHPR_TAB_PRE."costiprenota".risul_query($anni,$num1,'idanni');
$num_lock++;
} # fine for $num1
$altre_tab_lock[$num_lock] = $PHPR_TAB_PRE."versioni";
$num_lock++;
for ($num1 = 0 ; $num1 < $num_anni ; $num1++) {
$altre_tab_lock[$num_lock] = $PHPR_TAB_PRE."ntariffe".risul_query($anni,$num1,'idanni');
$num_lock++;
$altre_tab_lock[$num_lock] = $PHPR_TAB_PRE."periodi".risul_query($anni,$num1,'idanni');
$num_lock++;
} # fine for $num1
$altre_tab_lock[$num_lock] = $PHPR_TAB_PRE."appartamenti";
$num_lock++;
$altre_tab_lock[$num_lock] = $PHPR_TAB_PRE."clienti";
$num_lock++;
$altre_tab_lock[$num_lock] = $PHPR_TAB_PRE."relclienti";
$num_lock++;
for ($num1 = 0 ; $num1 < $num_anni ; $num1++) {
$altre_tab_lock[$num_lock] = $PHPR_TAB_PRE."costi".risul_query($anni,$num1,'idanni');
$num_lock++;
$altre_tab_lock[$num_lock] = $PHPR_TAB_PRE."regole".risul_query($anni,$num1,'idanni');
$num_lock++;
$altre_tab_lock[$num_lock] = $PHPR_TAB_PRE."soldi".risul_query($anni,$num1,'idanni');
$num_lock++;
} # fine for $num1
$altre_tab_lock[$num_lock] = $PHPR_TAB_PRE."descrizioni";
$num_lock++;
$altre_tab_lock[$num_lock] = $PHPR_TAB_PRE."nazioni";
$num_lock++;
$altre_tab_lock[$num_lock] = $PHPR_TAB_PRE."citta";
$num_lock++;
$altre_tab_lock[$num_lock] = $PHPR_TAB_PRE."regioni";
$num_lock++;
$altre_tab_lock[$num_lock] = $PHPR_TAB_PRE."documentiid";
$num_lock++;
$altre_tab_lock[$num_lock] = $PHPR_TAB_PRE."parentele";
$num_lock++;
$altre_tab_lock[$num_lock] = $PHPR_TAB_PRE."contratti";
$num_lock++;
$altre_tab_lock[$num_lock] = $PHPR_TAB_PRE."interconnessioni";
$num_lock++;
$altre_tab_lock[$num_lock] = $PHPR_TAB_PRE."messaggi";
$num_lock++;
$altre_tab_lock[$num_lock] = $PHPR_TAB_PRE."personalizza";
$num_lock++;
$altre_tab_lock[$num_lock] = $PHPR_TAB_PRE."utenti";
$num_lock++;
$altre_tab_lock[$num_lock] = $PHPR_TAB_PRE."gruppi";
$num_lock++;
$altre_tab_lock[$num_lock] = $PHPR_TAB_PRE."privilegi";
$num_lock++;
$altre_tab_lock[$num_lock] = $PHPR_TAB_PRE."relutenti";
$num_lock++;
$altre_tab_lock[$num_lock] = $PHPR_TAB_PRE."relgruppi";
$num_lock++;
$altre_tab_lock[$num_lock] = $PHPR_TAB_PRE."beniinventario";
$num_lock++;
$altre_tab_lock[$num_lock] = $PHPR_TAB_PRE."magazzini";
$num_lock++;
$altre_tab_lock[$num_lock] = $PHPR_TAB_PRE."relinventario";
$num_lock++;
$altre_tab_lock[$num_lock] = $PHPR_TAB_PRE."casse";
$num_lock++;
$altre_tab_lock[$num_lock] = $PHPR_TAB_PRE."sessioni";
$num_lock++;
$altre_tab_lock[$num_lock] = $PHPR_TAB_PRE."transazioni";
$num_lock++;
$altre_tab_lock[$num_lock] = $PHPR_TAB_PRE."transazioniweb";
$num_lock++;
$altre_tab_lock[$num_lock] = $PHPR_TAB_PRE."cache";
$num_lock++;
$tabelle_lock = lock_tabelle($tabelle_lock,$altre_tab_lock);
if ($id_utente == "b") $nome_file_bk = C_DATI_PATH."/backup_ext.php";
else $nome_file_bk = C_DATI_PATH."/hoteld_backup.php";
$file = @fopen($nome_file_bk,"w");
if ($file) {
flock($file,2);
allunga_tempo_limite();
$versione_corrente = esegui_query("select * from $tableversioni where idversioni = 1");
$versione_corrente = risul_query($versione_corrente,0,'num_versione');
$adesso = date("Y-m-d H:i:s",(time() + (C_DIFF_ORE * 3600)));
fwrite($file,"<?php exit(); ?>

<!--             $adesso             -->

<!--  **    SAVE THIS FILE AS hoteld_backup.php     **  -->

<!--  **  SALVA QUESTO FILE COME hoteld_backup.php  **  -->


<backup>
<versione>$versione_corrente</versione>
<log>$PHPR_LOG</log>
");
$utenti = esegui_query("select idutenti from $tableutenti order by idutenti");
#dump_testo("/dati_connessione.php",$file);
dump_testo("/lingua.php",$file);
dump_testo("/unit.php",$file);
dump_testo("/unit_single.php",$file);
dump_testo("/tema.php",$file);
dump_testo("/selectappartamenti.php",$file);
dump_testo("/versione.php",$file);
if (@is_file(C_DATI_PATH."/abilita_login")) dump_testo("/abilita_login",$file);
if (@is_file(C_DATI_PATH."/parole_sost.php")) dump_testo("/parole_sost.php",$file);
if (@is_file(C_DATI_PATH."/dati_interconnessioni.php")) dump_testo("/dati_interconnessioni.php",$file);
if (@is_file(C_DATI_PATH."/log_utenti.php")) dump_testo("/log_utenti.php",$file);
for ($num1 = 0 ; $num1 < $num_anni ; $num1++) {
$anno_reg = risul_query($anni,$num1,'idanni');
if (empty($anni_backup) or ${'anno_sel'.$anno_reg}) {
for ($num2 = 0 ; $num2 < numlin_query($utenti) ; $num2++) {
$idutente_reg = risul_query($utenti,$num2,'idutenti');
if (@is_file(C_DATI_PATH."/selectperiodi$anno_reg.$idutente_reg.php")) dump_testo("/selectperiodi$anno_reg.$idutente_reg.php",$file);
if (@is_file(C_DATI_PATH."/selperiodimenu$anno_reg.$idutente_reg.php")) dump_testo("/selperiodimenu$anno_reg.$idutente_reg.php",$file);
} # fine for $num2
} # fine if (empty($anni_backup) or ${'anno_sel'.$anno_reg})
} # fine for $num1

fwrite($file,"<database>
");
dump_tabella("anni",$file,$cond_anni);
dump_tabella("appartamenti",$file);
dump_tabella("clienti",$file);
dump_tabella("relclienti",$file);
dump_tabella("personalizza",$file,$cond_personalizza);
dump_tabella("versioni",$file);
dump_tabella("utenti",$file);
dump_tabella("gruppi",$file);
dump_tabella("privilegi",$file,$cond_ic_e_priv);
dump_tabella("sessioni",$file);
dump_tabella("transazioni",$file);
dump_tabella("transazioniweb",$file);
dump_tabella("descrizioni",$file);
dump_tabella("nazioni",$file);
dump_tabella("regioni",$file);
dump_tabella("citta",$file);
dump_tabella("documentiid",$file);
dump_tabella("parentele",$file);
dump_tabella("relutenti",$file);
dump_tabella("relgruppi",$file);
dump_tabella("beniinventario",$file);
dump_tabella("magazzini",$file);
dump_tabella("relinventario",$file);
dump_tabella("casse",$file);
dump_tabella("contratti",$file);
dump_tabella("cache",$file);
dump_tabella("interconnessioni",$file,$cond_ic_e_priv);
dump_tabella("messaggi",$file);
for ($num1 = 0 ; $num1 < $num_anni ; $num1++) {
$anno_reg = risul_query($anni,$num1,'idanni');
if (empty($anni_backup) or ${'anno_sel'.$anno_reg}) {
dump_tabella("prenota$anno_reg",$file);
dump_tabella("prenotacanc$anno_reg",$file);
dump_tabella("costiprenota$anno_reg",$file);
dump_tabella("rclientiprenota$anno_reg",$file);
dump_tabella("periodi$anno_reg",$file);
dump_tabella("ntariffe$anno_reg",$file);
dump_tabella("regole$anno_reg",$file);
dump_tabella("soldi$anno_reg",$file);
dump_tabella("costi$anno_reg",$file);
} # fine if (empty($anni_backup) or ${'anno_sel'.$anno_reg})
} # fine for $num1
fwrite($file,"</database>
");
echo "<br>";

if (isset($includi_modelli) and $includi_modelli == "SI") {
$lingua_orig = $lingua_mex;
if ($id_utente != 1) {
include(C_DATI_PATH."/lingua.php");
$lingua_mex_1 = $lingua[1];
} # fine if ($id_utente != 1)
else $lingua_mex_1 = $lingua_mex;
$lingua_mex = $lingua_mex_1;
include("./includes/templates/funzioni_modelli.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")) dump_modello("mdl_disponibilita.php",$percorso_cartella_modello,$file);
$lang_dir = opendir("./includes/lang/");
while ($ini_lingua = readdir($lang_dir)) {
if ($ini_lingua != "." && $ini_lingua != "..") {
$nome_file = mex2("mdl_disponibilita","crea_modelli.php",$ini_lingua).".php";
if (@is_file("$percorso_cartella_modello/$nome_file")) dump_modello($nome_file,$percorso_cartella_modello,$file);
} # fine if ($ini_lingua != "." && $ini_lingua != "..")
} # fine while ($ini_lingua = readdir($lang_dir))
closedir($lang_dir);
$templates_dir = opendir("./includes/templates/");
while ($modello_ext = readdir($templates_dir)) {
if ($modello_ext != "." && $modello_ext != ".." and @is_dir("./includes/templates/$modello_ext")) {
include("./includes/templates/$modello_ext/name.php");
if ($template_file_name['ita']) $nome_file = $template_file_name['ita'];
else $nome_file = "ita_".$template_file_name['en'];
if (@is_file("$percorso_cartella_modello/$nome_file")) dump_modello($nome_file,$percorso_cartella_modello,$file);
$lang_dir = opendir("./includes/lang/");
while ($ini_lingua = readdir($lang_dir)) {
if ($ini_lingua != "." && $ini_lingua != "..") {
if (!empty($template_file_name[$ini_lingua])) $nome_file = $template_file_name[$ini_lingua];
else $nome_file = $ini_lingua."_".$template_file_name['en'];
if (@is_file("$percorso_cartella_modello/$nome_file")) dump_modello($nome_file,$percorso_cartella_modello,$file);
} # fine if ($ini_lingua != "." && $ini_lingua != "..")
} # fine while ($ini_lingua = readdir($lang_dir))
closedir($lang_dir);
} # fine if ($modello_ext != "." and $modello_ext != ".." and...
} # fine while ($modello_ext = readdir($templates_dir))
closedir($templates_dir);
} # fine for $num_cart
$lingua_mex = $lingua_orig;
} # fine if (isset($includi_modelli) and $includi_modelli == "SI")

fwrite($file,"</backup>");
flock($file,3);
fclose($file);
@chmod(C_DATI_PATH."/hoteld_backup.php", 0640);
echo mex("File creato",$pag).".<br>
<!-- Backup_created -->";
} # fine if ($file)
else echo mex("Non ho il permesso di scrittura sul file",$pag).".<br>";
unlock_tabelle($tabelle_lock);
} # fine else if ($raggiunto_limite)
} # fine if (!isset($backup_contratti) or $backup_contratti != "SI")


else {
$tabelle_lock = array($PHPR_TAB_PRE."contratti");
$altre_tab_lock = array($PHPR_TAB_PRE."versioni",$PHPR_TAB_PRE."personalizza");
$tabelle_lock = lock_tabelle($tabelle_lock,$altre_tab_lock);
$nomi_contratti = esegui_query("select valpersonalizza from $PHPR_TAB_PRE"."personalizza where idpersonalizza = 'nomi_contratti' and idutente = '1'");
$nomi_contratti = risul_query($nomi_contratti,0,'valpersonalizza');
esegui_query("insert into $PHPR_TAB_PRE"."contratti (numero,tipo,testo) values ('1','nomi_con','".aggslashdb($nomi_contratti)."')");
$file = @fopen(C_DATI_PATH."/hoteld_doc_backup.php","w");
if ($file) {
flock($file,2);
$versione_corrente = esegui_query("select * from $tableversioni where idversioni = 1");
$versione_corrente = risul_query($versione_corrente,0,'num_versione');
$adesso = date("Y-m-d H:i:s",(time() + (C_DIFF_ORE * 3600)));
fwrite($file,"<?php exit(); ?>

<!--             $adesso             -->

<!--  **    SAVE THIS FILE AS hoteld_doc_backup.php     **  -->

<!--  **  SALVA QUESTO FILE COME hoteld_doc_backup.php  **  -->


<backup>
<versione>$versione_corrente</versione>
");
fwrite($file,"<database>
");
dump_tabella("contratti",$file,"",1);
echo "<br>";
fwrite($file,"</database>
</backup>");
flock($file,3);
fclose($file);
@chmod(C_DATI_PATH."/hoteld_doc_backup.php", 0640);
esegui_query("delete from $PHPR_TAB_PRE"."contratti where numero = '1' and tipo = 'nomi_con' ");
unlock_tabelle($tabelle_lock);
echo mex("File creato",$pag).".<br>";
} # fine if ($file)
else echo mex("Non ho il permesso di scrittura sul file",$pag)." dati/hoteld_doc_backup.php.<br>";
} # fine else if (!isset($backup_contratti) or $backup_contratti != "SI")
} # fine if (!empty($crea_backup))



if (!empty($upload_backup) and $id_utente == 1) {
$errore = "NO";
if (!isset($backup_contratti) or $backup_contratti != "SI") {
$file_tmp = C_DATI_PATH."/hoteld_backup.php.tmp";
$file_backup = C_DATI_PATH."/hoteld_backup.php";
} # fine if (!isset($backup_contratti) or $backup_contratti != "SI")
else {
$file_tmp = C_DATI_PATH."/hoteld_doc_backup.php.tmp";
$file_backup = C_DATI_PATH."/hoteld_doc_backup.php";
} # fine else if (!isset($backup_contratti) or $backup_contratti != "SI")
if (empty($file_backup_upload)) {
fix_set($file_backup_upload);
if (!empty($HTTP_POST_FILES['file_backup_upload']['tmp_name'])) $file_backup_upload = $HTTP_POST_FILES['file_backup_upload']['tmp_name'];
else if (!empty($_FILES['file_backup_upload']['tmp_name'])) $file_backup_upload = $_FILES['file_backup_upload']['tmp_name'];
} # fine if (empty($file_backup_upload))
if (!move_uploaded_file($file_backup_upload,$file_tmp)) $errore = "SI";
if ($errore == "NO") {
if (defined("C_MASSIMO_NUM_BYTE_UPLOAD") and C_MASSIMO_NUM_BYTE_UPLOAD != 0 and filesize($file_tmp) > C_MASSIMO_NUM_BYTE_UPLOAD) $errore = "SI";
if (isset($compresso) and $compresso == "SI") {
if (rename($file_tmp,"$file_tmp.gz")) {
if ($cfp = gzopen("$file_tmp.gz","r") and $fileaperto = fopen($file_tmp,"w")) {
flock($fileaperto,2);
while (!feof($cfp)) {
$linee = gzread($cfp,524288);
fwrite($fileaperto,$linee);
} # fine while (!feof($cfp))
flock($fileaperto,3);
fclose($fileaperto);
gzclose($cfp);
} # fine if ($cfp = gzopen("$file_tmp.gz","r") and...
unlink("$file_tmp.gz");
} # fine if (rename($file_tmp,"$file_tmp.gz"))
} # fine if (isset($compresso) and $compresso == "SI")
unset($linee_file);
$fileaperto = fopen($file_tmp,"r");
$linee_file = trim(fread($fileaperto,25));
fclose($fileaperto);
if (substr($linee_file,0,16) != "<?php exit(); ?>" or $errore != "NO") {
echo mex("Il contenuto del file inviato non è corretto",$pag).".<br>";
$errore = "SI";
unlink($file_tmp);
} # fine if (substr($linee_file,0,16) != "<\?php exit(); ?\>" or...
else if (!rename($file_tmp,$file_backup)) $errore = "SI";
} # fine if ($errore == "NO")
if ($errore == "NO") echo mex("Ho fatto l'upload del file",$pag)." $file_backup.<br>";
else echo mex("Non ho potuto fare l'upload del file",$pag).".<br>";
} # fine if (!empty($upload_backup) and $id_utente == 1)



if (!empty($salva_backup)) {
$tasto_torna_indietro = "NO";
if (!isset($backup_contratti) or $backup_contratti != "SI") {
$nome_file = "hoteld_backup.php";
$nome_file_compresso = "hoteld_backup.php.gz";
if ($id_utente == "b") $file = C_DATI_PATH."/backup_ext.php";
else $file = C_DATI_PATH."/hoteld_backup.php";
} # fine if (!isset($backup_contratti) or $backup_contratti != "SI")
else {
$nome_file = "hoteld_doc_backup.php";
$nome_file_compresso = "hoteld_doc_backup.php.gz";
$file = C_DATI_PATH."/hoteld_doc_backup.php";
} # fine else if (!isset($backup_contratti) or $backup_contratti != "SI")
$filelock = @crea_lock_file($file);
if ($filelock) {
if (@is_file($file)) {
if (isset($compresso) and $compresso == "SI") {
list($usec,$sec) = explode(' ',microtime());
mt_srand((float) $sec + (int) ((float) $usec * 1000000.0));
$file_compresso = C_DATI_PATH."/backup".mt_rand(10000,99999).".php.gz";
$cfp = gzopen($file_compresso,"wb9");
$fbackup = fopen($file,"r");
if ($fbackup) {
while (!feof($fbackup)) {
$linee = fread($fbackup,524288);
gzwrite($cfp,$linee);
} # fine while (!feof($fbackup))
fclose ($fbackup);
} # fine if ($fbackup)
gzclose($cfp);
$file = $file_compresso;
$nome_file = $nome_file_compresso;
} # fine if (isset($compresso) and $compresso == "SI")
$lunghezza_file = (int) filesize($file);
header("Pragma: public");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: pre-check=0, post-check=0, max-age=0");
header("Content-Transfer-Encoding: none");
if (isset($compresso) and $compresso == "SI") header("Content-Type: application/x-gzip; name=\"$nome_file\"");
else {
header("Content-Type: application/octetstream; name=\"$nome_file\"");
header("Content-Type: application/octet-stream; name=\"$nome_file\"");
} # fine else if ($compresso == "SI")
header("Content-Disposition: inline; filename=\"$nome_file\"");
header("Content-length: $lunghezza_file");
$fbackup = fopen($file,"r");
if ($fbackup) {
while (!feof($fbackup)) {
$linee = fread($fbackup,524288);
echo $linee;
} # fine while (!feof($fbackup))
fclose ($fbackup);
} # fine if ($fbackup)
if ($compresso == "SI" and @is_file($file_compresso)) unlink($file_compresso);
distruggi_lock_file($filelock,$file);
if ($id_utente == "b") unlink(C_DATI_PATH."/backup_ext.php");
} # fine if (@is_file($file))
} # fine if ($filelock)
} # fine if (!empty($salva_backup))



if (!empty($cancella_backup)) {
if (!isset($backup_contratti) or $backup_contratti != "SI") $file_backup = C_DATI_PATH."/hoteld_backup.php";
else $file_backup = C_DATI_PATH."/hoteld_doc_backup.php";
if (!@unlink($file_backup)) echo mex("Si è verificato un errore cancellando il file",$pag).".<br>";
else echo mex("File cancellato",$pag).".<br>";
} # fine if (!empty($cancella_backup))



if (!empty($copia_def_backup) and $backup_contratti == "SI" and $id_utente == 1) {
$file_backup = C_DATI_PATH."/hoteld_doc_backup.php";
if (($lingua != "ita" and !is_dir("./includes/lang/$lingua")) or strlen($lingua) > 3 or str_replace("/","",$lingua) != $lingua) $lingua = "en";
if ($lingua != "ita" and !is_dir("./includes/lang/$lingua")) $lingua = "ita";
if ($lingua == "ita") $file_copia = "./includes/hoteld_doc_backup.php";
else $file_copia = "./includes/lang/$lingua/hoteld_doc_backup.php";
if (defined("C_CARTELLA_FILES_REALI")) $file_copia = C_CARTELLA_FILES_REALI.$file_copia;
if (!@copy($file_copia,$file_backup)) echo ucfirst(mex("si è verificato un errore copiando il file",$pag)).".<br>";
else echo ucfirst(mex("file copiato",$pag)).".<br>";
} # fine if (!empty($copia_def_backup) and $backup_contratti == "SI" and $id_utente == 1)



#if (!empty($guarda_backup)) {
#if ($linee_backup = @file(C_DATI_PATH."/hoteld_backup.php")) {
#for ($num1 = 0 ; $num1 < count($linee_backup) ; $num1++) {
#echo $linee_backup[$num1];
#} # fine ($num1 = 0 ; $num1 < $num_anni ; $num1++)
#} # fine if ($linee_backup = @file(C_DATI_PATH."/hoteld_backup.php"))
#else {
#echo mex("Non ho potuto leggere il file",$pag).".<br>";
#$tasto_torna_indietro = "SI";
#} # fine else if ($linee_backup = @file(C_DATI_PATH."/hoteld_backup.php"))
#} # fine if (!empty($guarda_backup))



if (!empty($ripristina_backup) and $id_utente == 1) {
if (!isset($backup_contratti) or $backup_contratti != "SI") {
if (defined('C_BACKUP_E_MODELLI_CON_NUOVI_DATI') and C_BACKUP_E_MODELLI_CON_NUOVI_DATI == "NO") $dati_conn = "attuali";
$file = C_DATI_PATH."/hoteld_backup.php";
if (@is_file($file)) {
if ($fbackup = fopen($file,"r")) {
$versione_corrente = esegui_query("select * from $tableversioni where idversioni = 1");
$versione_corrente = risul_query($versione_corrente,0,'num_versione');
while (!feof($fbackup)) {
$linea = fgets($fbackup,524288);
$linea = togli_acapo($linea);
if (substr($linea,0,10) == "<versione>") {
$versione_file = substr($linea,10);
$versione_file = substr($versione_file,0,-11);
break;
} # fine if (substr($linea,0,10) == "<versione>")
} # fine while (!feof($fbackup))
fclose($fbackup);
if ($prova = @fopen(C_DATI_PATH."/prova","w")) {
fclose($prova);
@unlink(C_DATI_PATH."/prova");
} # fine if ($prova = @fopen(C_DATI_PATH."/prova","w"))
else $dati_scrivibile = "NO";
if ($versione_file and $versione_file == $versione_corrente) {
if (!isset($dati_scrivibile) or $dati_scrivibile != "NO") {

if (!isset($continua) or $continua != "SI") {
echo "<br><big>".mex("<b style=\"color: red;\">ATTENZIONE</b>: premendo su <b>\"<i>Continua</i>\"</b>, prima di ripristinare i dati dal <i>file</i>, tutti i dati del <i>database attuale</i> verranno <b>cancellati</b>",$pag)."!</big><br><br>";
echo "<form accept-charset=\"utf-8\" method=\"post\" action=\"./crea_backup.php\"><div>
<input type=\"hidden\" name=\"anno\" value=\"$anno\">
<input type=\"hidden\" name=\"id_sessione\" value=\"$id_sessione\">
<input type=\"hidden\" name=\"ripristina_backup\" value=\"$ripristina_backup\">
<input type=\"hidden\" name=\"mantieni_anni\" value=\"".htmlspecialchars(fixstr($mantieni_anni))."\">
<input type=\"hidden\" name=\"azione\" value=\"SI\">
<input type=\"hidden\" name=\"continua\" value=\"SI\">";

if ($dati_conn == "attuali") echo "<input type=\"hidden\" name=\"dati_conn\" value=\"attuali\">";

if ($dati_conn == "nuovi") {

$HOTELD_DB_TYPE = "";
$HOTELD_DB_NAME = "";
$HOTELD_DB_HOST = "";
$HOTELD_DB_PORT = "";
$HOTELD_DB_USER = "";
$HOTELD_DB_PASS = "";
$HOTELD_TAB_PRE = "";
if (defined('C_EXT_DB_DATA_PATH') and C_EXT_DB_DATA_PATH) include(C_EXT_DB_DATA_PATH);

echo "".mex("Inserisci i nuovi dati per la connessione al database",$pag).".<br><br>";
if (!$HOTELD_DB_TYPE) echo "".mex("Tipo di database",$pag).": 
<select name=\"N_PHPR_DB_TYPE\">
<option value=\"postgresql\" selected>".mex("Postgresql",$pag)."</option>
<option value=\"mysql\">".mex("Mysql",$pag)."</option>
<option value=\"sqlite\">".mex("Sqlite",$pag)."</option>
</select><br>";
if (!$HOTELD_DB_NAME) echo "".mex("Nome del database da utilizzare",$pag).": 
<input type=\"text\" name=\"N_PHPR_DB_NAME\"><br>";
echo "".mex("Database già esistente",$pag)."?
<select name=\"database_esistente\">
<option value=\"SI\">".mex("Si",$pag)."</option>
<option value=\"NO\" selected>".mex("No",$pag)."</option></select><small>
(".mex("Se già esistente e non vuoto usare un prefisso non presente nel database per il nome delle tabelle",$pag).")</small><br>";
if (!$HOTELD_DB_HOST) echo "".mex("Nome del computer a cui collegarsi",$pag).":
<input type=\"text\" name=\"N_PHPR_DB_HOST\" value=\"localhost\"><br>";
if (!strcmp((string) $HOTELD_DB_PORT,"")) echo "".mex("Numero della porta a cui collegarsi",$pag).": 
<input type=\"text\" name=\"N_PHPR_DB_PORT\" value=\"5432\">(".mex("Normalmete 5432 o 5433 per Postgresql o 3306 per Mysql",$pag).")<br>";
if (!$HOTELD_DB_USER) echo "".mex("Nome per l'autenticazione al database",$pag).": 
<input type=\"text\" name=\"N_PHPR_DB_USER\"><br>";
if (!strcmp((string) $HOTELD_DB_PASS,"")) echo "".mex("Parola segreta per l'autenticazione al database",$pag).": 
<input type=\"text\" name=\"N_PHPR_DB_PASS\"><br>";
echo "".mex("Caricare la libreria dinamica \"pgsql.so\" o \"mysql.so\"",$pag)."?
<select name=\"N_PHPR_LOAD_EXT\">
<option value=\"SI\">".mex("Si",$pag)."</option>
<option value=\"NO\" selected>".mex("No",$pag)."</option>
</select> <small>(".mex("scegliere si se non viene caricata automaticamente da php",$pag).")</small><br>
".mex("Nome del database a cui collegarsi temporaneamente",$pag).":
<input type=\"text\" name=\"tempdatabase\" value=\"template1\"><small>
(".mex("solo per Postgresql con database non esistente",$pag).")</small><br>";
if (!$HOTELD_TAB_PRE) echo "".mex("Prefisso nel nome delle tabelle",$pag).":
<input type=\"text\" name=\"N_PHPR_TAB_PRE\" maxlength=\"8\" size=\"9\"><small>
(".mex("opzionale, utile per più installazioni di HotelDruid nello stesso database",$pag).")</small><br><br>";
} # fine if ($dati_conn == "nuovi")

echo "<div style=\"text-align: center;\">
<button class=\"rbkp\" type=\"submit\"><div>".mex("Continua",$pag)."</div></button>
</div></div></form><br>";

} # fine if (!isset($continua) or $continua != "SI")

if ($dati_conn == "attuali") {
$N_PHPR_DB_TYPE = $PHPR_DB_TYPE;
$N_PHPR_DB_NAME = $PHPR_DB_NAME;
$N_PHPR_DB_HOST = $PHPR_DB_HOST;
$N_PHPR_DB_PORT = $PHPR_DB_PORT;
$N_PHPR_DB_USER = $PHPR_DB_USER;
$N_PHPR_DB_PASS = $PHPR_DB_PASS;
$N_PHPR_LOAD_EXT = $PHPR_LOAD_EXT;
$N_PHPR_TAB_PRE = $PHPR_TAB_PRE;
} # fine if ($dati_conn == "attuali")

if (isset($continua) and $continua == "SI" and ((!defined('C_RESTRIZIONI_DEMO_ADMIN') or C_RESTRIZIONI_DEMO_ADMIN != "SI") or (defined('C_PASS_DEMO_ADMIN') and C_PASS_DEMO_ADMIN == $pass_demo_admin))) ripristina_backup($file,"NO",$pag,$numconnessione,fixset($database_esistente),fixset($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);

} # fine if (!isset($dati_scrivibile) or $dati_scrivibile != "NO")
else echo mex("Non ho i permessi di scrittura sulla cartella dati",$pag).".<br>";
} # fine if ($versione_file and $versione_file == $versione_corrente)
else {
if (defined('C_NASCONDI_MARCA') and C_NASCONDI_MARCA == "SI") echo mex("La versione attuale e quella del file non coincidono",$pag).".<br>";
else echo mex("La versione attuale di HotelDruid e quella del file non coincidono",$pag).".<br>";
} # fine else if ($versione_file and $versione_file == $versione_corrente)
} # fine if ($fbackup = fopen($file,"r"))
else echo mex("Non ho potuto leggere il file",$pag).".<br>";
} # fine if (@is_file($file))
else echo mex("Non ho potuto leggere il file",$pag).".<br>";
} # fine if (!isset($backup_contratti) or $backup_contratti != "SI")


else {
if (@is_file(C_DATI_PATH."/hoteld_doc_backup.php")) {
if ($linee_backup = file(C_DATI_PATH."/hoteld_doc_backup.php")) {

if (!defined('C_RESTRIZIONI_DEMO_ADMIN') or C_RESTRIZIONI_DEMO_ADMIN != "SI") ripristina_backup_contr($linee_backup,"NO",$pag,$PHPR_TAB_PRE,$modalita,fixset($contr_agg));

} # fine if ($linee_backup = file(C_DATI_PATH."/hoteld_doc_backup.php"))
else echo mex("Non ho potuto leggere il file",$pag).".<br>";
} # fine if (@is_file(C_DATI_PATH."/hoteld_doc_backup.php"))
else echo mex("Non ho potuto leggere il file",$pag).".<br>";

} # fine else if (!isset($backup_contratti) or $backup_contratti != "SI")
} # fine if (!empty($ripristina_backup) and $id_utente == 1)



if (!isset($tasto_torna_indietro) or $tasto_torna_indietro != "NO") {
echo "<div style=\"text-align: center;\">
<form accept-charset=\"utf-8\" method=\"post\" action=\"./crea_backup.php\"><div>
<input type=\"hidden\" name=\"anno\" value=\"$anno\">
<input type=\"hidden\" name=\"id_sessione\" value=\"$id_sessione\">";
if (isset($backup_contratti) and $backup_contratti == "SI") echo "<input type=\"hidden\" name=\"backup_contratti\" value=\"SI\">";
echo "<button class=\"gobk\" type=\"submit\"><div>".mex("Torna indietro",$pag)."</div></button>
</div></form></div>";
} # fine if (!isset($tasto_torna_indietro) or $tasto_torna_indietro != "NO")


} # fine if (fixset($azione) == "SI")


elseif ($anno_utente_attivato == "SI") {

$stile_data = stile_data();



if (fixset($backup_contratti) == "SI") {
echo "<h3 id=\"h_dcbk\"><span>".mex("Backup dei documenti",$pag).".</span></h3>
<hr style=\"width: 95%\">";

if (@is_file(C_DATI_PATH."/hoteld_doc_backup.php")) $file_esistente = "SI";
else $file_esistente = "NO";

echo "<form accept-charset=\"utf-8\" method=\"post\" action=\"./crea_backup.php\"><div>
<input type=\"hidden\" name=\"anno\" value=\"$anno\">
<input type=\"hidden\" name=\"id_sessione\" value=\"$id_sessione\">
<input type=\"hidden\" name=\"backup_contratti\" value=\"SI\">
<input type=\"hidden\" name=\"azione\" value=\"SI\">
<button class=\"abkp\" type=\"submit\" name=\"crea_backup\" value=\"1\"><div>";
if ($file_esistente == "NO") echo mex("Crea il file di backup dei documenti",$pag);
else echo mex("Crea un nuovo file di backup dei documenti",$pag);
echo "</div></button>";
if ($file_esistente == "SI") {
$fbackup = fopen(C_DATI_PATH."/hoteld_doc_backup.php","r");
$data_creazione = fread($fbackup,200);
fclose ($fbackup);
$data_creazione = explode("<!--",$data_creazione);
$data_creazione = explode("-->",$data_creazione[1]);
$data_creazione = formatta_data(trim($data_creazione[0]),$stile_data);
$data_creazione = str_replace(" "," ".mex("alle",$pag)." ",$data_creazione);
echo " (".mex("sovrascrivendo l'attuale",$pag)." ".mex("creato il",$pag)." $data_creazione)";
} # fine if ($file_esistente == "SI")
echo ".</div></form><table><tr><td style=\"height: 8px;\"></td></tr></table>";
if ($file_esistente == "SI") {
#echo "<a href=\"./crea_backup.php?azione=SI&tasto_torna_indietro=NO&anno=$anno&guarda_backup=SI\">".mex("Guarda il file dati/hoteld_doc_backup.php</a> per salvarlo (usa il bottone indietro del browser per tornare qui)",$pag).".<br>";
#echo "<a href=\C_DATI_PATH."/backup.txt\">".mex("Guarda il file dati/backup.txt</a> per salvarlo (usa il bottone indietro del browser per tornare qui)",$pag).".<br>";
echo "<form accept-charset=\"utf-8\" method=\"post\" action=\"./crea_backup.php\"><div>
<input type=\"hidden\" name=\"anno\" value=\"$anno\">
<input type=\"hidden\" name=\"id_sessione\" value=\"$id_sessione\">
<input type=\"hidden\" name=\"backup_contratti\" value=\"SI\">
<input type=\"hidden\" name=\"azione\" value=\"SI\">
<input type=\"hidden\" name=\"mostra_header\" value=\"NO\">
<button class=\"dbkp\" type=\"submit\" name=\"salva_backup\" value=\"1\"><div>".mex("Guarda il file",$pag)."</div></button>
 dati/hoteld_doc_backup.php ".mex("per salvarlo (eventualmente usa il bottone indietro del browser per tornare qui)",$pag).".<br><table><tr><td style=\"width: 30px;\"></td><td>
<label><input type=\"checkbox\" name=\"compresso\" value=\"SI\" checked> ".mex("Compresso",$pag)."</label>
</td></tr></table></div></form><table><tr><td style=\"height: 4px;\"></td></tr></table>";
#if ($id_utente == 1) {
echo "<form accept-charset=\"utf-8\" method=\"post\" action=\"./crea_backup.php\"><div>
<input type=\"hidden\" name=\"anno\" value=\"$anno\">
<input type=\"hidden\" name=\"id_sessione\" value=\"$id_sessione\">
<input type=\"hidden\" name=\"backup_contratti\" value=\"SI\">
<input type=\"hidden\" name=\"azione\" value=\"SI\">
<button class=\"cbkp\" type=\"submit\" name=\"cancella_backup\" value=\"1\"><div>".mex("Cancella",$pag)."</div></button>
".mex(" l'attuale file di backup dei documenti",$pag).".
</div></form><table><tr><td style=\"height: 4px;\"></td></tr></table>";
#} # fine if ($id_utente == 1)
} # fine if ($file_esistente == "SI")

if ($id_utente == 1) {
echo "<hr style=\"width: 95%\"><table><tr><td style=\"height: 4px;\"></td></tr></table>
<form accept-charset=\"utf-8\" method=\"post\" action=\"./crea_backup.php\"><div>
<input type=\"hidden\" name=\"anno\" value=\"$anno\">
<input type=\"hidden\" name=\"id_sessione\" value=\"$id_sessione\">
<input type=\"hidden\" name=\"backup_contratti\" value=\"SI\">
<input type=\"hidden\" name=\"azione\" value=\"SI\">
<button class=\"ubkp\" type=\"submit\" name=\"copia_def_backup\" value=\"1\"><div>".ucfirst(mex("copia",$pag))."</div></button>
 ".mex("il file di backup dai documenti predefiniti in",$pag)."
 <select name=\"lingua\">
<option value=\"ita\">italiano</option>";
$lang_dir = opendir("./includes/lang/");
while ($ini_lingua = readdir($lang_dir)) {
if ($ini_lingua != "." && $ini_lingua != "..") {
$file_doc_backup = "./includes/lang/$ini_lingua/hoteld_doc_backup.php";
if (defined("C_CARTELLA_FILES_REALI")) $file_doc_backup = C_CARTELLA_FILES_REALI.$file_doc_backup;
if (@is_file($file_doc_backup)) {
$nome_lingua = file("./includes/lang/$ini_lingua/l_n");
$nome_lingua = togli_acapo($nome_lingua[0]);
if ($ini_lingua == $lingua_mex) $selected = " selected";
else $selected = "";
echo "<option value=\"$ini_lingua\"$selected>$nome_lingua</option>";
} # fine if (@is_file($file_doc_backup))
} # fine if ($file != "." && $file != "..")
} # fine while ($file = readdir($lang_dig))
closedir($lang_dir);
echo "</select>";
if ($file_esistente == "SI") echo " (".mex("sovrascrivendo l'attuale",$pag).")";
echo ".<br></div></form><table><tr><td style=\"height: 8px;\"></td></tr></table>
<form accept-charset=\"utf-8\" enctype=\"multipart/form-data\" method=\"post\" action=\"./crea_backup.php\"><div>
<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"20000000\">
<input type=\"hidden\" name=\"anno\" value=\"$anno\">
<input type=\"hidden\" name=\"id_sessione\" value=\"$id_sessione\">
<input type=\"hidden\" name=\"backup_contratti\" value=\"SI\">
<input type=\"hidden\" name=\"azione\" value=\"SI\">
<button class=\"ubkp\" type=\"submit\" name=\"upload_backup\" value=\"1\"><div>".mex("Fai l'upload",$pag)."</div></button>";
if ($file_esistente == "NO") echo mex(" del file di backup dei documenti",$pag);
else echo mex(" di un nuovo file di backup dei documenti",$pag);
echo ": <input name=\"file_backup_upload\" type=\"file\">";
if ($file_esistente == "SI") echo " (".mex("sovrascrivendo l'attuale",$pag).")";
echo ".<br><table><tr><td style=\"width: 30px;\"></td><td>
<label><input type=\"checkbox\" name=\"compresso\" value=\"SI\" checked> ".mex("Compresso",$pag)."</label>
</td></tr></table></div></form><table><tr><td style=\"height: 4px;\"></td></tr></table>";
if ($file_esistente == "SI") {
$linee_backup = file(C_DATI_PATH."/hoteld_doc_backup.php");
$info_contr = ripristina_backup_contr($linee_backup,"SI",$pag,$PHPR_TAB_PRE,"info");
echo "<form accept-charset=\"utf-8\" method=\"post\" action=\"./crea_backup.php\"><div>
<input type=\"hidden\" name=\"anno\" value=\"$anno\">
<input type=\"hidden\" name=\"id_sessione\" value=\"$id_sessione\">
<input type=\"hidden\" name=\"backup_contratti\" value=\"SI\">
<input type=\"hidden\" name=\"azione\" value=\"SI\">
<button class=\"rdbk\" type=\"submit\" name=\"ripristina_backup\" value=\"1\"><div>".mex("Ripristina i documenti dal file",$pag)."</div></button><br>
<table><tr><td style=\"width: 30px;\"></td><td>
<label><input type=\"radio\" name=\"modalita\" value=\"aggiungi\" checked>".mex("aggiungi ai documenti attuali",$pag)."</label>";
if ($info_contr['max_contr'] > 1) {
echo " <select name=\"contr_agg\">
<option value=\"\" selected>".mex("tutti i documenti contenuti nel file",$pag)."</option>";
unset($nomi_contratti);
$nomi_con = explode("#@&",$info_contr['nomi_con']);
$num_nomi_con = count($nomi_con);
for ($num1 = 0 ; $num1 < $num_nomi_con ; $num1++) {
$nome_con = explode("#?&",$nomi_con[$num1]);
$nomi_contratti[$nome_con[0]] = $nome_con[1];
} # fine for $num1
for ($num1 = 1 ; $num1 <= $info_contr['max_contr'] ; $num1++) {
echo "<option value=\"$num1\">".mex("solo il documento",$pag)." $num1";
if (isset($nomi_contratti[$num1]) and strcmp((string) $nomi_contratti[$num1],"")) echo " (".$nomi_contratti[$num1].")";
echo "</option>";
} # fine for $num1
echo "</select>";
} # fine if ($info_contr['max_contr'] > 1)
echo "<br><label><input type=\"radio\" name=\"modalita\" value=\"rimpiazza\">".mex("rimpiazza i documenti attuali",$pag)."</label> (".mex("i documenti attuali verranno cancellati",$pag).")<br>";
echo "</td></tr></table></div></form><table><tr><td style=\"height: 1px;\"></td></tr></table>";
} # fine if ($file_esistente == "SI")
} # fine if ($id_utente == 1)

echo "<hr style=\"width: 95%\"><div style=\"text-align: center;\">
<br><br>
<form accept-charset=\"utf-8\" method=\"post\" action=\"./crea_backup.php\"><div>
<input type=\"hidden\" name=\"anno\" value=\"$anno\">
<input type=\"hidden\" name=\"id_sessione\" value=\"$id_sessione\">
<button class=\"bkup\" type=\"submit\"><div>".mex("Backup completo",$pag)."</div></button>
</div></form><br>";
} # fine if (fixset($backup_contratti) == "SI")

else {



# Pagina iniziale di backup
if (defined('C_NASCONDI_MARCA') and C_NASCONDI_MARCA == "SI") echo "<h3 id=\"h_bkup\"><span>".mex("Sistema di backup","personalizza.php").".</span></h3>";
else echo "<h3 id=\"h_bkup\"><span>".mex("Sistema di backup per HotelDruid",$pag).".</span></h3>";
echo "<hr style=\"width: 95%\">";

if (@is_file(C_DATI_PATH."/hoteld_backup.php")) $file_esistente = "SI";
else $file_esistente = "NO";

echo "<form accept-charset=\"utf-8\" method=\"post\" action=\"./crea_backup.php\"><div>
<input type=\"hidden\" name=\"anno\" value=\"$anno\">
<input type=\"hidden\" name=\"id_sessione\" value=\"$id_sessione\">
<input type=\"hidden\" name=\"azione\" value=\"SI\">
<button class=\"abkp\" type=\"submit\" name=\"crea_backup\" value=\"1\"><div>";
if ($file_esistente == "NO") echo mex("Crea il file di backup",$pag);
else echo mex("Crea un nuovo file di backup",$pag);
echo "</div></button>";
if ($file_esistente == "SI") {
$fbackup = fopen(C_DATI_PATH."/hoteld_backup.php","r");
$data_creazione = fread($fbackup,200);
fclose($fbackup);
$data_creazione = explode("<!--",$data_creazione);
$data_creazione = explode("-->",$data_creazione[1]);
$data_creazione = formatta_data(trim($data_creazione[0]),$stile_data);
$data_creazione = str_replace(" "," ".mex("alle",$pag)." ",$data_creazione);
echo " (".mex("sovrascrivendo l'attuale",$pag)." ".mex("creato il",$pag)." $data_creazione)";
} # fine if ($file_esistente == "SI")
echo ".<br><table><tr><td style=\"width: 30px;\"></td><td>";
$anni = esegui_query("select * from $tableanni order by idanni");
$num_anni = numlin_query($anni);
if ($num_anni > 1) {
echo "<div><label><input type=\"radio\" name=\"anni_backup\" value=\"\" checked>".mex("Includi tutti gli anni",$pag)."</label></div>
<div onclick=\"document.getElementById('ab_sel').checked='1'\"><label><input type=\"radio\" name=\"anni_backup\" id=\"ab_sel\" value=\"sel\">".mex("Includi solo gli anni selezionati",$pag)."</label>: ";
for ($num1 = 0 ; $num1 < $num_anni ; $num1++) {
$anno_corr = risul_query($anni,$num1,'idanni');
echo "<label><input type=\"checkbox\" name=\"anno_sel$anno_corr\" value=\"1\"> $anno_corr</label>";
if ($num1 != ($num_anni - 1)) echo "; ";
} # fine for $num1
echo "</div>";
} # fine if ($num_anni > 1)
echo "<label><input type=\"checkbox\" name=\"includi_modelli\" value=\"SI\" checked> ".mex("Includi le pagine per il sito web",$pag)."</label>
</td></tr></table></div></form>
<table><tr><td style=\"height: 8px;\"></td></tr></table>";

if ($file_esistente == "SI") {
#echo "<a href=\"./crea_backup.php?azione=SI&tasto_torna_indietro=NO&anno=$anno&guarda_backup=SI\">".mex("Guarda il file dati/hoteld_backup.php</a> per salvarlo (usa il bottone indietro del browser per tornare qui)",$pag).".<br>";
#echo "<a href=\C_DATI_PATH."/backup.txt\">".mex("Guarda il file dati/backup.txt</a> per salvarlo (usa il bottone indietro del browser per tornare qui)",$pag).".<br>";
echo "<form accept-charset=\"utf-8\" method=\"post\" action=\"./crea_backup.php\"><div>
<input type=\"hidden\" name=\"anno\" value=\"$anno\">
<input type=\"hidden\" name=\"id_sessione\" value=\"$id_sessione\">
<input type=\"hidden\" name=\"azione\" value=\"SI\">
<input type=\"hidden\" name=\"mostra_header\" value=\"NO\">
<button class=\"dbkp\" type=\"submit\" name=\"salva_backup\" value=\"1\"><div>".mex("Guarda il file",$pag)."</div></button>
 dati/hoteld_backup.php ".mex("per salvarlo (eventualmente usa il bottone indietro del browser per tornare qui)",$pag).".<br>
<table><tr><td style=\"width: 30px;\"></td><td>
<label><input type=\"checkbox\" name=\"compresso\" value=\"SI\" checked> ".mex("Compresso",$pag)."</label>
</td></tr></table></div></form><table><tr><td style=\"height: 4px;\"></td></tr></table>";
#if ($id_utente == 1) {
echo "<form accept-charset=\"utf-8\" method=\"post\" action=\"./crea_backup.php\"><div>
<input type=\"hidden\" name=\"anno\" value=\"$anno\">
<input type=\"hidden\" name=\"id_sessione\" value=\"$id_sessione\">
<input type=\"hidden\" name=\"azione\" value=\"SI\">
<button class=\"cbkp\" type=\"submit\" name=\"cancella_backup\" value=\"1\"><div>".mex("Cancella",$pag)."</div></button>
".mex(" l'attuale file di backup",$pag).".
</div></form><table><tr><td style=\"height: 4px;\"></td></tr></table>";
#} # fine if ($id_utente == 1)
} # fine if ($file_esistente == "SI")

if ($id_utente == 1) {
echo "<hr style=\"width: 95%\"><table><tr><td style=\"height: 4px;\"></td></tr></table>
<form accept-charset=\"utf-8\" enctype=\"multipart/form-data\" method=\"post\" action=\"./crea_backup.php\"><div>
<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"900000000\">
<input type=\"hidden\" name=\"anno\" value=\"$anno\">
<input type=\"hidden\" name=\"id_sessione\" value=\"$id_sessione\">
<input type=\"hidden\" name=\"azione\" value=\"SI\">
<button class=\"ubkp\" type=\"submit\" name=\"upload_backup\" value=\"1\"><div>".mex("Fai l'upload",$pag)."</div></button>";
if ($file_esistente == "NO") echo mex(" del file di backup",$pag);
else echo mex(" di un nuovo file di backup",$pag);
echo ": <input name=\"file_backup_upload\" type=\"file\">";
if ($file_esistente == "SI") echo " (".mex("sovrascrivendo l'attuale",$pag).")";
echo ".<br><table><tr><td style=\"width: 30px;\"></td><td>
<label><input type=\"checkbox\" name=\"compresso\" value=\"SI\" checked> ".mex("Compresso",$pag)."</label>
</td></tr></table></div></form><table><tr><td style=\"height: 4px;\"></td></tr></table>";
if ($file_esistente == "SI") {
echo "<form accept-charset=\"utf-8\" method=\"post\" action=\"./crea_backup.php\"><div>
<input type=\"hidden\" name=\"anno\" value=\"$anno\">
<input type=\"hidden\" name=\"id_sessione\" value=\"$id_sessione\">
<input type=\"hidden\" name=\"azione\" value=\"SI\">
<button class=\"rbkp\" type=\"submit\" name=\"ripristina_backup\" value=\"1\"><div>".mex("Ripristina i dati dal file",$pag)."</div></button>
".mex(" (i dati attuali verranno cancellati), utilizzando per la connessione al database:",$pag)."<br>
<table><tr><td style=\"width: 30px;\"></td><td>
<div><label><input type=\"radio\" name=\"dati_conn\" value=\"attuali\" checked>".mex("i dati dell'attuale connessione",$pag)."</label></div>";
echo "<table><tr><td style=\"width: 30px;\"></td><td>
<label><input type=\"checkbox\" name=\"mantieni_anni\" value=\"1\">".mex("Prova a mantenere i dati degli anni non contenuti nel backup",$pag)."</label>
 <small>(".mex("alcuni dati di questi anni potrebbero comunque venir persi",$pag).")</small>
</td></tr></table>";
if (!defined('C_BACKUP_E_MODELLI_CON_NUOVI_DATI') or C_BACKUP_E_MODELLI_CON_NUOVI_DATI != "NO") echo "<div><label><input type=\"radio\" name=\"dati_conn\" value=\"nuovi\">".mex("nuovi dati",$pag)."</label></div>";
echo "</td></tr></table></div></form><table><tr><td style=\"height: 1px;\"></td></tr></table>";
} # fine if ($file_esistente == "SI")
} # fine if ($id_utente == 1)

echo "<hr style=\"width: 95%\"><div style=\"text-align: center;\">
<br><br>
<form accept-charset=\"utf-8\" method=\"post\" action=\"./crea_backup.php\"><div>
<input type=\"hidden\" name=\"anno\" value=\"$anno\">
<input type=\"hidden\" name=\"id_sessione\" value=\"$id_sessione\">
<input type=\"hidden\" name=\"backup_contratti\" value=\"SI\">
<button class=\"dcbk\" type=\"submit\"><div>".mex("Backup dei documenti",$pag)."</div></button>
</div></form><br>";

} # fine else if ($backup_contratti == "SI")



$action = "personalizza.php";
if ($backup_contratti == "SI") $action .= "#contratti";
echo "<form accept-charset=\"utf-8\" method=\"post\" action=\"$action\"><div>
<input type=\"hidden\" name=\"anno\" value=\"$anno\">
<input type=\"hidden\" name=\"id_sessione\" value=\"$id_sessione\">
<button class=\"gobk\" type=\"submit\"><div>".mex("Torna indietro",$pag)."</div></button>
</div></form><br></div>";



} # fine elseif ($anno_utente_attivato == "SI")




if ($mostra_header != "NO") {
if ($tema[$id_utente] and $tema[$id_utente] != "base" and @is_dir("./themes/".$tema[$id_utente]."/php")) include("./themes/".$tema[$id_utente]."/php/foot.php");
else include("./includes/foot.php");
} # fine if ($mostra_header != "NO")


} # fine if ($priv_crea_backup == "s")
} # fine if ($id_utente)



?>
