# 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 = "modifica_app.php"; $titolo = "HotelDruid: Modifica Appartamenti"; include("./constants.php"); 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); include("./includes/funzioni.php"); $tablenometariffe = $PHPR_TAB_PRE."ntariffe".$anno; $tableprenota = $PHPR_TAB_PRE."prenota".$anno; $tableperiodi = $PHPR_TAB_PRE."periodi".$anno; $tableregole = $PHPR_TAB_PRE."regole".$anno; $tableappartamenti = $PHPR_TAB_PRE."appartamenti"; $tableanni = $PHPR_TAB_PRE."anni"; $tablepersonalizza = $PHPR_TAB_PRE."personalizza"; $tablerelinventario = $PHPR_TAB_PRE."relinventario"; $tabledescrizioni = $PHPR_TAB_PRE."descrizioni"; $id_utente = controlla_login($numconnessione,$PHPR_TAB_PRE,$id_sessione,$nome_utente_phpr,$password_phpr,$anno); if ($id_utente and $id_utente == 1) {
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) }