function crea_messaggio_contr_salva($nome_file_contr, $num_file_salva, $num_contr_esist, $nome_file_contr_esist, $numero_contratto, $nomi_contratti, $dir_salva, $tipo_contratto, $num_ripeti, $origine, $origine_vecchia, $lista_var_form, $mostra_headers, $anno, $id_sessione, $id_utente, $tema, $tableversioni, $tabletransazioni, $pag)
{
    global $PHPR_TAB_PRE, $priv_cancella_contratti;
    $nome_file_contr_orig = $nome_file_contr;
    $num_file_salva_orig = $num_file_salva;
    if ($num_contr_esist) {
        $nome_file_contr = $nome_file_contr_esist;
        $num_file_salva = count($nome_file_contr);
    }
    # fine if ($num_contr_esist)
    $tabelle_lock = array($tableversioni, $tabletransazioni);
    $adesso = date("YmdHis", time() + C_DIFF_ORE * 3600);
    list($usec, $sec) = explode(' ', microtime());
    mt_srand((double) $sec + (double) $usec * 100000);
    $val_casuale = mt_rand(100000, 999999);
    $versione_transazione = prendi_numero_versione($tableversioni);
    $ultimo_accesso = date("Y-m-d H:i:s", time() + C_DIFF_ORE * 3600);
    $id_transazione = $adesso . $val_casuale . $versione_transazione;
    esegui_query("insert into {$tabletransazioni} (idtransazioni,idsessione,tipo_transazione,anno,dati_transazione1,dati_transazione2,dati_transazione3,dati_transazione4,dati_transazione5,ultimo_accesso) values ('{$id_transazione}','{$id_sessione}','con_s','{$anno}','" . aggslashdb($dir_salva) . "','" . aggslashdb(serialize($nome_file_contr)) . "','{$tipo_contratto}','" . aggslashdb($origine) . "','" . aggslashdb($origine_vecchia) . "','{$ultimo_accesso}')");
    unlock_tabelle($tabelle_lock);
    if ($tipo_contratto == "contrrtf") {
        $sec_aspetta = 2;
    } else {
        $sec_aspetta = 6;
    }
    $url_reload = "./{$pag}?id_sessione={$id_sessione}&anno={$anno}&id_transazione={$id_transazione}&numero_contratto={$numero_contratto}";
    if ($num_file_salva == 1) {
        $target = "";
    } else {
        $target = " target=\"_blank\"";
    }
    if ($mostra_headers == "NO") {
        if ($num_file_salva == 1) {
            $extra_head = "<meta http-equiv=\"refresh\" content=\"{$sec_aspetta}; url={$url_reload}&n_file=1\">\n";
        }
        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 ($mostra_headers == "NO")
    if ($num_contr_esist and $num_file_salva_orig == 1) {
        echo "<div style=\"line-height: 180%\"><br>";
    } else {
        echo "<div style=\"line-height: 130%\"><br>";
    }
    if ($num_contr_esist) {
        if ($num_ripeti > 1) {
            echo mex("Documenti già esistenti riguardanti queste prenotazioni", $pag) . ":<br>";
        } else {
            echo mex("Documenti già esistenti riguardanti questa prenotazione", $pag) . ":<br>";
        }
    }
    # fine if ($num_contr_esist)
    for ($num1 = 1; $num1 <= $num_file_salva; $num1++) {
        if ($num_contr_esist and $num_file_salva_orig == 1) {
            echo "<form accept-charset=\"utf-8\" method=\"post\" action=\"{$pag}\"><div>\n{$lista_var_form}\n<input type=\"hidden\" name=\"sovrascrivi\" value=\"" . htmlspecialchars($nome_file_contr[$num1]) . "\">";
        }
        # fine if ($num_contr_esist and $num_file_salva_orig == 1)
        if (!$num_contr_esist) {
            echo ucfirst(mex("documento", $pag)) . " ";
            if ($nomi_contratti['salv'][$numero_contratto] != $nomi_contratti[$numero_contratto]) {
                echo "\"" . $nomi_contratti[$numero_contratto] . "\" ";
            }
            echo mex("<span class=\"colblu\">salvato</span> come", $pag);
        }
        # fine if (!$num_contr_esist)
        echo " <b><a style=\"color: #000000;\" href=\"{$url_reload}&n_file={$num1}\"{$target}>" . $nome_file_contr[$num1] . "</a></b>";
        if ($num_contr_esist and $num_file_salva_orig == 1 and $priv_cancella_contratti != "n") {
            echo " " . bottone_submit_contr(mex("Sovrascrivi", $pag)) . "\n.</div></form>";
        } else {
            echo ".<br>";
        }
    }
    # fine for $num1
    echo "<br></div>";
    if (!$num_contr_esist) {
        if ($priv_cancella_contratti != "n") {
            echo "<form accept-charset=\"utf-8\" method=\"post\" action=\"{$pag}\"><div>\n<input type=\"hidden\" name=\"anno\" value=\"{$anno}\">\n<input type=\"hidden\" name=\"id_sessione\" value=\"{$id_sessione}\">\n<input type=\"hidden\" name=\"numero_contratto\" value=\"{$numero_contratto}\">\n<input type=\"hidden\" name=\"id_transazione\" value=\"{$id_transazione}\">\n<input type=\"hidden\" name=\"cancella\" value=\"SI\">";
            if ($num_file_salva == 1) {
                echo "&nbsp;" . bottone_submit_contr(mex("Cancella il documento", $pag));
            } else {
                echo bottone_submit_contr(mex("Cancella i documenti", $pag));
            }
            echo "</div></form><br>";
        }
        # fine if ($priv_cancella_contratti != "n")
    } else {
        echo "<br>\n<form accept-charset=\"utf-8\" method=\"post\" action=\"{$pag}\"><div>\n{$lista_var_form}\n<input type=\"hidden\" name=\"cont_salva\" value=\"SI\">";
        if ($num_file_salva_orig == 1) {
            echo "&nbsp;" . bottone_submit_contr(mex("Salva un nuovo documento", $pag));
        } else {
            echo bottone_submit_contr(mex("Salva dei nuovi documenti", $pag));
        }
        echo "</div></form><br>";
    }
    # fine else if (!$num_contr_esist)
}

$tabelle_lock = array($tableversioni,$tabletransazioni);
$tabelle_lock = lock_tabelle($tabelle_lock);
$ultimo_accesso = date("Y-m-d H:i:s",(time() + (C_DIFF_ORE * 3600)));
$transaz_esistente = esegui_query("select idtransazioni from $tabletransazioni where idsessione = '$id_sessione' and tipo_transazione = 'tab_p' ");
if (numlin_query($transaz_esistente)) {
$transaz_esistente = risul_query($transaz_esistente,0,'idtransazioni');
esegui_query("update $tabletransazioni set dati_transazione1 = '".aggslashdb($pag_pren_corr)."', dati_transazione2 = '".aggslashdb($pag_pren_succ)."', dati_transazione3 = '".aggslashdb($pag_pren_prec)."', dati_transazione4 = '".aggslashdb($ordine_prenota)."', dati_transazione5 = '".aggslashdb($mos_tut_dat)."', dati_transazione6 = '".aggslashdb($cerca_prenota)."', dati_transazione7 = '".aggslashdb($opz_cerc_pren)."', dati_transazione8 = '".aggslashdb($cerca_ini)."', dati_transazione9 = '".aggslashdb($cerca_fine)."', dati_transazione10 = '".aggslashdb($id_utente_vedi)."', dati_transazione11 = '".aggslashdb($senza_colori)."', dati_transazione12 = '".aggslashdb($lista_prenota)."', dati_transazione13 = '".aggslashdb($sel_tab_prenota)."', ultimo_accesso = '$ultimo_accesso' where idtransazioni = '$transaz_esistente' ");
} # fine if (numlin_query($transaz_esistente))
else {
$adesso = date("YmdHis",(time() + (C_DIFF_ORE * 3600)));
list($usec, $sec) = explode(' ', microtime());
mt_srand((float) $sec + ((float) $usec * 100000));
$val_casuale = mt_rand(100000,999999);
$versione_transazione = prendi_numero_versione($tableversioni);
$id_transazione = $adesso.$val_casuale.$versione_transazione;
esegui_query("insert into $tabletransazioni (idtransazioni,idsessione,tipo_transazione,anno,dati_transazione1,dati_transazione2,dati_transazione3,dati_transazione4,dati_transazione5,dati_transazione6,dati_transazione7,dati_transazione8,dati_transazione9,dati_transazione10,dati_transazione11,dati_transazione12,dati_transazione13,ultimo_accesso) 
values ('$id_transazione','$id_sessione','tab_p','$anno','".aggslashdb($pag_pren_corr)."','".aggslashdb($pag_pren_succ)."','".aggslashdb($pag_pren_prec)."','".aggslashdb($ordine_prenota)."','".aggslashdb($mos_tut_dat)."','".aggslashdb($cerca_prenota)."','".aggslashdb($opz_cerc_pren)."','".aggslashdb($cerca_ini)."','".aggslashdb($cerca_fine)."','".aggslashdb($id_utente_vedi)."','".aggslashdb($senza_colori)."','".aggslashdb($lista_prenota)."','".aggslashdb($sel_tab_prenota)."','$ultimo_accesso')");
} # fine else if (numlin_query($transaz_esistente))
unlock_tabelle($tabelle_lock);


$tabelle_lock = "";
$altre_tab_lock = array($tableprenota,$tableperiodi,$tableappartamenti,$tablecontratti,$tablepersonalizza,$tableutenti);
$tabelle_lock = lock_tabelle($tabelle_lock,$altre_tab_lock);

$prendi_app = 0;
$prendi_doc = 0;
$attiva_checkin = esegui_query("select valpersonalizza from $tablepersonalizza where idpersonalizza = 'attiva_checkin' and idutente = '$id_utente_vedi'");
$attiva_checkin = risul_query($attiva_checkin,0,'valpersonalizza');
Beispiel #3
0
function controlla_login(&$numconnessione, &$PHPR_TAB_PRE, &$id_sessione, $nome_utente_phpr, $password_phpr, $anno)
{
    if (defined("C_FILE_SCADENZA_ACCOUNT") and C_FILE_SCADENZA_ACCOUNT != "") {
        $scadenza = trim(@implode("", @file("./" . C_FILE_SCADENZA_ACCOUNT)));
        $adesso = date("YmdHis");
        if (!$scadenza or $scadenza < $adesso) {
            $disattivato = "SI";
            if (defined("C_HTML_PRE_LOGIN") and C_HTML_PRE_LOGIN != "") {
                echo C_HTML_PRE_LOGIN;
            }
            echo "Expired account.<br>";
            if (defined("C_HTML_POST_LOGIN") and C_HTML_POST_LOGIN != "") {
                echo C_HTML_POST_LOGIN;
            }
        }
        # fine (!$scadenza or $scadenza < $adesso)
    }
    # fine (defined("C_FILE_SCADENZA_ACCOUNT") and C_FILE_SCADENZA_ACCOUNT != "")
    if (!$disattivato) {
        global $lingua_mex, $tema, $pag, $ILIKE, $LIKE, $DATETIME, $nome_utente_login, $PHPR_LOG;
        @(include C_DATA_PATH . "/lingua.php");
        @(include C_DATA_PATH . "/versione.php");
        if ($lingua[1] and @is_dir("./includes/lang/" . $lingua[1])) {
            $lingua_mex = $lingua[1];
        } else {
            $lingua_mex = "ita";
        }
        $nome_utente_login = "";
        if (!is_file(C_DATA_PATH . "/abilita_login")) {
            $id_utente = 1;
        } else {
            if (!$id_sessione) {
                if ($nome_utente_phpr and $password_phpr) {
                    if (!$numconnessione) {
                        include C_DATA_PATH . "/dati_connessione.php";
                        include "./includes/funzioni_{$PHPR_DB_TYPE}.php";
                        $numconnessione = connetti_db($PHPR_DB_NAME, $PHPR_DB_HOST, $PHPR_DB_PORT, $PHPR_DB_USER, $PHPR_DB_PASS, $PHPR_LOAD_EXT);
                    }
                    # fine if (!$numconnessione)
                    $nome_utente_phpr = aggslashdb($nome_utente_phpr);
                    $password_phpr = aggslashdb($password_phpr);
                    $tableutenti = $PHPR_TAB_PRE . "utenti";
                    $tablesessioni = $PHPR_TAB_PRE . "sessioni";
                    $tableversioni = $PHPR_TAB_PRE . "versioni";
                    $tabletransazioni = $PHPR_TAB_PRE . "transazioni";
                    $tablepersonalizza = $PHPR_TAB_PRE . "personalizza";
                    $tabelle_lock = array($tableversioni, $tablesessioni, $tabletransazioni);
                    $altre_tab_lock = array($tablepersonalizza, $tableutenti);
                    $tabelle_lock = lock_tabelle($tabelle_lock, $altre_tab_lock);
                    $sec_log_sbagliati = 5;
                    $limite_login_sbagliati = date("Y-m-d H:i:s", time() - $sec_log_sbagliati + C_DIFF_ORE * 3600);
                    $ultimo_login_sbagliato = esegui_query("select ultimo_accesso from {$tabletransazioni} where tipo_transazione = 'err_l' and ultimo_accesso >= '{$limite_login_sbagliati}'");
                    if (numlin_query($ultimo_login_sbagliato) > 0) {
                        $mostra_form_login = "******";
                        $messaggio_errore .= mex("Dopo un login <div style=\"display: inline; color: red;\">errato</div> si devono attendere", "funzioni.php") . " {$sec_log_sbagliati} " . mex("secondi", "funzioni.php") . ".<br><br>";
                    } else {
                        $num_log_sbagliati = 7;
                        $num_log_avviso = 3;
                        $minuti_durata_sessione = esegui_query("select valpersonalizza_num from {$tablepersonalizza} where idpersonalizza = 'minuti_durata_sessione' and idutente = '1'");
                        $minuti_durata_sessione = risul_query($minuti_durata_sessione, 0, 'valpersonalizza_num');
                        $limite_transazioni_vecchie = date("Y-m-d H:i:s", time() - $minuti_durata_sessione * 60 + C_DIFF_ORE * 3600);
                        esegui_query("delete from {$tabletransazioni} where ultimo_accesso <= '{$limite_transazioni_vecchie}'");
                        $login_sbagliati = esegui_query("select tipo_transazione from {$tabletransazioni} where tipo_transazione = 'err_l' and dati_transazione1 = '{$nome_utente_phpr}'");
                        $login_sbagliati = numlin_query($login_sbagliati);
                        if ($login_sbagliati >= $num_log_sbagliati) {
                            $messaggio_errore .= mex("Numero eccesivo di login <div style=\"display: inline; color: red;\">errati</div> negli ultimi", "funzioni.php") . " {$minuti_durata_sessione} " . mex("minuti", "funzioni.php") . ".<br><br>";
                            if (defined("C_HTML_POST_LOGIN") and C_HTML_POST_LOGIN != "") {
                                $messaggio_errore .= mex("È possibile reimpostare la password dal proprio account di hosting", "funzioni.php") . "." . C_HTML_POST_LOGIN;
                            }
                        } else {
                            $utente = esegui_query("select * from {$tableutenti} where nome_utente = '{$nome_utente_phpr}'");
                            if (numlin_query($utente) == 1) {
                                $nome_utente_login = risul_query($utente, 0, 'nome_utente');
                                $tipo_pass = risul_query($utente, 0, 'tipo_pass');
                                $password = risul_query($utente, 0, 'password');
                                if ($tipo_pass == "5") {
                                    if (C_VERSIONE_ATTUALE > 1.32) {
                                        $salt = risul_query($utente, 0, 'salt');
                                        for ($num1 = 0; $num1 < 15; $num1++) {
                                            $password_phpr = md5($password_phpr . substr($salt, 0, 20 - $num1));
                                        }
                                    } else {
                                        $password_phpr = md5($password_phpr);
                                    }
                                }
                                # fine if ($tipo_pass == "5")
                                # login effettuato con successo
                                if ($password == $password_phpr and $tipo_pass != "n") {
                                    $id_utente = risul_query($utente, 0, 'idutenti');
                                    $adesso = $anno . date("mdHis", time() + C_DIFF_ORE * 3600);
                                    $versione_unica = prendi_numero_versione($tableversioni);
                                    list($usec, $sec) = explode(' ', microtime());
                                    mt_srand((double) $sec + (double) $usec * 100000);
                                    $val_casuale = mt_rand(100000, 999999);
                                    $id_sessione = $adesso . $val_casuale . $versione_unica;
                                    $ultimo_accesso = date("Y-m-d H:i:s", time() + C_DIFF_ORE * 3600);
                                    global $_SERVER, $REMOTE_ADDR, $REMOTE_PORT, $HTTP_USER_AGENT;
                                    if ($_SERVER['REMOTE_ADDR']) {
                                        $REMOTE_ADDR = $_SERVER['REMOTE_ADDR'];
                                    }
                                    $REMOTE_ADDR = aggslashdb($REMOTE_ADDR);
                                    if ($_SERVER['REMOTE_PORT']) {
                                        $REMOTE_PORT = $_SERVER['REMOTE_PORT'];
                                    }
                                    $REMOTE_PORT = aggslashdb($REMOTE_PORT);
                                    if ($_SERVER['HTTP_USER_AGENT']) {
                                        $HTTP_USER_AGENT = $_SERVER['HTTP_USER_AGENT'];
                                    }
                                    $HTTP_USER_AGENT = aggslashdb($HTTP_USER_AGENT);
                                    if ($_SERVER['HTTPS'] == "on" or $_SERVER['SERVER_PORT'] == "443") {
                                        $tipo_conn = "HTTPS";
                                    } else {
                                        $tipo_conn = "HTTP";
                                    }
                                    if (C_VERSIONE_ATTUALE >= 2.1) {
                                        esegui_query("insert into {$tablesessioni} (idsessioni,idutente,indirizzo_ip,tipo_conn,user_agent,ultimo_accesso) values ('{$id_sessione}','{$id_utente}','{$REMOTE_ADDR}','{$tipo_conn}','{$HTTP_USER_AGENT}','{$ultimo_accesso}')", "", $id_utente);
                                    } else {
                                        esegui_query("insert into {$tablesessioni} (idsessioni,idutente,indirizzo_ip,user_agent,ultimo_accesso) values ('{$id_sessione}','{$id_utente}','{$REMOTE_ADDR}','{$HTTP_USER_AGENT}','{$ultimo_accesso}')", "", $id_utente);
                                    }
                                } else {
                                    $login_fallito = "SI";
                                }
                            } else {
                                $login_fallito = "SI";
                            }
                            if ($login_fallito == "SI") {
                                $mostra_form_login = "******";
                                $messaggio_errore .= mex("Nome utente o password <div style=\"display: inline; color: red;\">errati</div>", "funzioni.php") . ".<br>";
                                if ($login_sbagliati >= $num_log_sbagliati - $num_log_avviso - 1) {
                                    if ($num_log_sbagliati - $login_sbagliati - 1 > 1) {
                                        $messaggio_errore .= mex("Mancano solo", "funzioni.php") . " <span class=\"colred\"><b>" . ($num_log_sbagliati - $login_sbagliati - 1) . "</b></span> " . mex("tentativi prima del blocco dei login", "funzioni.php") . ".<br>";
                                    }
                                    if ($num_log_sbagliati - $login_sbagliati - 1 == 1) {
                                        $messaggio_errore .= mex("Manca solo", "funzioni.php") . " <span class=\"colred\"><b>1</b></span> " . mex("tentativo prima del blocco dei login", "funzioni.php") . ".<br>";
                                    }
                                }
                                # fine if (numlin_query($utente) == 1)
                                $messaggio_errore .= "<br>";
                                $versione_transazione = prendi_numero_versione($tableversioni);
                                $adesso = date("YmdHis", time() + C_DIFF_ORE * 3600);
                                list($usec, $sec) = explode(' ', microtime());
                                mt_srand((double) $sec + (double) $usec * 100000);
                                $val_casuale = mt_rand(100000, 999999);
                                $ultimo_accesso = date("Y-m-d H:i:s", time() + C_DIFF_ORE * 3600);
                                global $_SERVER, $REMOTE_ADDR;
                                if ($_SERVER['REMOTE_ADDR']) {
                                    $REMOTE_ADDR = $_SERVER['REMOTE_ADDR'];
                                }
                                $REMOTE_ADDR = aggslashdb($REMOTE_ADDR);
                                $id_transazione = $adesso . $val_casuale . $versione_transazione;
                                esegui_query("insert into {$tabletransazioni} (idtransazioni,tipo_transazione,dati_transazione1,dati_transazione2,ultimo_accesso) values ('{$id_transazione}','err_l','{$nome_utente_phpr}','{$REMOTE_ADDR}','{$ultimo_accesso}')");
                            }
                            # fine if ($login_fallito == "SI")
                        }
                        # fine else if ($login_sbagliati >= $num_log_sbagliati)
                    }
                    # fine else if (numlin_query($ultimo_login_sbagliato) > 0)
                    unlock_tabelle($tabelle_lock);
                } else {
                    $mostra_form_login = "******";
                }
            } else {
                if (!$numconnessione) {
                    include C_DATA_PATH . "/dati_connessione.php";
                    include "./includes/funzioni_{$PHPR_DB_TYPE}.php";
                    $numconnessione = connetti_db($PHPR_DB_NAME, $PHPR_DB_HOST, $PHPR_DB_PORT, $PHPR_DB_USER, $PHPR_DB_PASS, $PHPR_LOAD_EXT);
                }
                # fine if ($numconnessione)
                $tableutenti = $PHPR_TAB_PRE . "utenti";
                $tablesessioni = $PHPR_TAB_PRE . "sessioni";
                $tablepersonalizza = $PHPR_TAB_PRE . "personalizza";
                $tabelle_lock = array($tableutenti, $tablesessioni);
                $altre_tab_lock = array($tablepersonalizza);
                $tabelle_lock = lock_tabelle($tabelle_lock, $altre_tab_lock);
                $minuti_durata_sessione = esegui_query("select valpersonalizza_num from {$tablepersonalizza} where idpersonalizza = 'minuti_durata_sessione' and idutente = '1'");
                $minuti_durata_sessione = risul_query($minuti_durata_sessione, 0, 'valpersonalizza_num');
                $limite_sessioni_vecchie = date("Y-m-d H:i:s", time() - $minuti_durata_sessione * 60 + C_DIFF_ORE * 3600);
                esegui_query("delete from {$tablesessioni} where ultimo_accesso <= '{$limite_sessioni_vecchie}'");
                $ultimo_accesso = date("Y-m-d H:i:s", time() + C_DIFF_ORE * 3600);
                global $_SERVER, $REMOTE_ADDR, $REMOTE_PORT, $HTTP_USER_AGENT;
                if ($_SERVER['REMOTE_ADDR']) {
                    $REMOTE_ADDR = $_SERVER['REMOTE_ADDR'];
                }
                $REMOTE_ADDR = aggslashdb($REMOTE_ADDR);
                if ($_SERVER['REMOTE_PORT']) {
                    $REMOTE_PORT = $_SERVER['REMOTE_PORT'];
                }
                $REMOTE_PORT = aggslashdb($REMOTE_PORT);
                if ($_SERVER['HTTP_USER_AGENT']) {
                    $HTTP_USER_AGENT = $_SERVER['HTTP_USER_AGENT'];
                }
                $HTTP_USER_AGENT = aggslashdb($HTTP_USER_AGENT);
                $sessione = esegui_query("select * from {$tablesessioni} where idsessioni = '{$id_sessione}'");
                if (numlin_query($sessione) == 1) {
                    $indirizzo_ip = risul_query($sessione, 0, 'indirizzo_ip');
                    $tipo_conn = @risul_query($sessione, 0, 'tipo_conn');
                    $user_agent = risul_query($sessione, 0, 'user_agent');
                    if ($indirizzo_ip == $REMOTE_ADDR and $user_agent == $HTTP_USER_AGENT or $tipo_conn == "HTTPS" and ($_SERVER['HTTPS'] == "on" or $_SERVER['SERVER_PORT'] == "443")) {
                        $id_utente_presunto = risul_query($sessione, 0, 'idutente');
                        $utente_presente = esegui_query("select nome_utente from {$tableutenti} where idutenti = '{$id_utente_presunto}'");
                        if (numlin_query($utente_presente) == 1) {
                            $nome_utente_login = risul_query($utente_presente, 0, 'nome_utente');
                            $id_utente = $id_utente_presunto;
                            esegui_query("update {$tablesessioni} set ultimo_accesso = '{$ultimo_accesso}' where idsessioni = '{$id_sessione}'");
                        } else {
                            $sessione_scaduta = "SI";
                        }
                    } else {
                        $sessione_scaduta = "SI";
                    }
                } else {
                    $sessione_scaduta = "SI";
                }
                unlock_tabelle($tabelle_lock);
                if ($sessione_scaduta == "SI") {
                    $mostra_form_login = "******";
                    $messaggio_errore .= "" . mex("Sessione <div style=\"display: inline; color: red;\">scaduta</div>", "funzioni.php") . ".<br><br>";
                }
                # fine if ($sessione_scaduta == "SI")
            }
            # fine else if (!$id_sessione)
            if ($messaggio_errore or $mostra_form_login == "SI") {
                if ($pag == "aggiorna.php") {
                    $action = "aggiorna.php";
                } else {
                    if ((@is_array($_POST) or @is_array($_GET)) and $pag) {
                        $action = $pag;
                        if (@is_array($_POST)) {
                            reset($_POST);
                            for ($num1 = 0; $num1 < count($_POST); $num1++) {
                                $key = key($_POST);
                                if ($key != "id_sessione" and $key != "nome_utente_phpr" and $key != "password_phpr" and $key != "pass_cc" and $key != "logout") {
                                    $input_var_passate .= "<input type=\"hidden\" name=\"{$key}\" value=\"" . htmlspecialchars(strip_magic_slashs(current($_POST))) . "\">";
                                }
                                next($_POST);
                            }
                            # fine for $num1
                        }
                        # fine if (@is_array($_POST))
                        if (@is_array($_GET)) {
                            reset($_GET);
                            for ($num1 = 0; $num1 < count($_GET); $num1++) {
                                $key = key($_GET);
                                if ($key != "id_sessione" and $key != "nome_utente_phpr" and $key != "password_phpr" and $key != "pass_cc" and $key != "logout") {
                                    $input_var_passate .= "<input type=\"hidden\" name=\"{$key}\" value=\"" . htmlspecialchars(strip_magic_slashs(current($_GET))) . "\">";
                                }
                                next($_GET);
                            }
                            # fine for $num1
                        }
                        # fine if (@is_array($_GET))
                    } else {
                        $action = "inizio.php";
                    }
                }
                # fine else if ($pag == "aggiorna.php")
                $pag = "login";
                if (C_NASCONDI_MARCA == "SI") {
                    $titolo = "Login";
                } else {
                    $titolo = mex("Login per HotelDruid", "funzioni.php");
                }
                $show_bar = "NO";
                $tema_corr = $tema[1];
                if ($tema[1] and $tema[1] != "base" and @is_dir("./themes/" . $tema[1] . "/php")) {
                    include "./themes/" . $tema[1] . "/php/head.php";
                } else {
                    include "./includes/head.php";
                }
                if (!defined('C_URL_LOGO') or C_URL_LOGO == "") {
                    echo "<div id=\"flogin\">";
                } else {
                    echo "<div style=\"background: url(" . C_URL_LOGO . ") no-repeat right top; padding: 5px; line-height: 1.6;\">";
                }
                echo $messaggio_errore;
            }
            # fine if ($messaggio_errore or $mostra_form_login == "SI")
            if ($mostra_form_login == "SI") {
                if (@is_file(C_DATA_PATH . "/dati_subordinazione.php")) {
                    include C_DATA_PATH . "/dati_subordinazione.php";
                }
                if (defined("C_HTML_PRE_LOGIN") and C_HTML_PRE_LOGIN != "") {
                    echo C_HTML_PRE_LOGIN;
                }
                $mess = $titolo;
                if ($commento_subordinazione) {
                    $mess .= " ({$commento_subordinazione})";
                }
                echo "<big><big>{$mess}:</big></big><br><div style=\"height: 6px\"></div>\n<form accept-charset=\"utf-8\" method=\"post\" action=\"{$action}\"><div>\n<input type=\"hidden\" name=\"vers_hinc\" value=\"1\">\n{$input_var_passate}\n" . mex("Nome utente", "funzioni.php") . ": <input type=\"text\" name=\"nome_utente_phpr\" size=\"12\"><br>\n" . mex("Password", "funzioni.php") . ": <input type=\"password\" name=\"password_phpr\" size=\"12\" autocorrect=\"off\" autocapitalize=\"off\"><br>\n<table><tr><td style=\"height: 2px;\"></td></tr></table>\n<input class=\"sbutton\" type=\"submit\" name=\"effettua_login\" value=\"" . mex("Entra", "funzioni.php") . "\">\n</div></form>";
                if (defined("C_HTML_POST_LOGIN") and C_HTML_POST_LOGIN != "") {
                    echo C_HTML_POST_LOGIN;
                }
            }
            # fine if ($mostra_form_login == "SI")
            if ($messaggio_errore or $mostra_form_login == "SI") {
                # todo: it's forked, copyright stuff
                echo "<div>";
                if ($tema[1] and $tema[1] != "base" and @is_dir("./themes/" . $tema[1] . "/php")) {
                    include "./themes/" . $tema[1] . "/php/foot.php";
                } else {
                    include "./includes/foot.php";
                }
            }
            # fine if ($messaggio_errore or $mostra_form_login == "SI")
            if ($id_utente and ($lingua[$id_utente] == "ita" or @is_dir("./includes/lang/" . $lingua[$id_utente]))) {
                $lingua_mex = $lingua[$id_utente];
            }
        }
        # fine else if (!is_file(C_DATI_PATH."/abilita_login"))
        if ($id_utente and $tema[$id_utente] != "base" and (!$tema[$id_utente] or !@is_dir("./themes/" . $tema[$id_utente] . "/php"))) {
            $tema[$id_utente] = "base";
        }
        if (C_VERSIONE_ATTUALE < C_PHP_VERSION_NUM and $id_utente and $pag != "aggiorna.php") {
            if (@is_file(C_DATA_PATH . "/dati_connessione.php") or @is_file("./data/connessione_db.php") or @is_file("./datipermanenti/connessione_db.inc")) {
                if ($pag == "interconnessioni.php" and $id_utente != 1) {
                    $id_utente_az = esegui_query("select idlocale from {$PHPR_TAB_PRE}" . "interconnessioni where tipoid = 'id_utente_az' ");
                    if (numlin_query($id_utente_az) == 1) {
                        $id_utente_azione_ic = risul_query($id_utente_az, 0, 'idlocale');
                    }
                }
                # fine if ($pag == "interconnessioni.php" and $id_utente != 1)
                if ($id_utente == $id_utente_azione_ic) {
                    include "./includes/funzioni_aggiorna.php";
                    aggiorna_versione_phpr($numconnessione, $id_utente, $id_sessione, $nome_utente_phpr, $password_phpr, $anno);
                } else {
                    $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";
                    }
                    echo mex("Il database deve essere aggiornato", "funzioni.php") . ".<br>";
                    echo "<form method=\"post\" action=\"aggiorna.php\"><div>\n<input type=\"hidden\" name=\"anno\" value=\"{$anno}\">\n<input type=\"hidden\" name=\"id_sessione\" value=\"{$id_sessione}\">\n<input class=\"sbutton\" type=\"submit\" value=\"" . mex("Aggiorna", "funzioni.php") . "\">\n</div></form>";
                    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 else if ($id_utente == $id_utente_azione_ic)
                unset($id_utente);
            }
            # fine if (@is_file(C_DATI_PATH."/dati_connessione.php") or...
        }
        # fine if (C_VERSIONE_ATTUALE < C_PHPR_VERSIONE_NUM and...
        return $id_utente;
    }
    # fine if (!$disattivato)
}