Exemplo n.º 1
0
if ($molto_vecchio) {
    $numconnessione = "SI";
    include "./datipermanenti/connessione_db.inc";
    $PHPR_DB_TYPE = "postgresql";
    $PHPR_TAB_PRE = "";
    include "./includes/funzioni_{$PHPR_DB_TYPE}.php";
} else {
    if ($vecchio) {
        $numconnessione = "SI";
        include "./data/connessione_db.php";
        $PHPR_DB_TYPE = "postgresql";
        $PHPR_TAB_PRE = "";
        include "./includes/funzioni_{$PHPR_DB_TYPE}.php";
    } else {
        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 else if ($vecchio)
}
# fine else if ($molto_vecchio)
include "./includes/funzioni.php";
include "./includes/funzioni_aggiorna.php";
aggiorna_versione_phpr($numconnessione, "", $id_sessione, $nome_utente_phpr, $password_phpr, $anno);
?>


</div>
</body>
</html>
Exemplo n.º 2
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)
}