0 and ( //primo controllo classico (trim($_POST["name_ifa"]) != "" ) //controllo i due campi di controllo se vengono modificati //or (isset($_POST["FORM"]["test_ifa"]) and $_POST["FORM"]["test_ifa"] != "trfgbhyrds_xx") //or (isset($_POST["FORM"]["test_ifa2"]) and $_POST["FORM"]["test_ifa2"] != "ifa2") //controllo specifico per i form di indi or (is_array($_POST["FORM"]) && count($_POST["FORM"]) > 0 and !stristr(serialize($_POST),"name_ifa")) or (is_array($_POST["FORM_GEST"]) && count($_POST["FORM_GEST"]) > 0 and !stristr(serialize($_POST),"name_ifa")) //manca controllo html su textarea //oppure ci sono i campi di controllo ma e' stato tolto uno degli altri //or (isset($_POST["FORM"]["test_ifa"]) and (!isset($_POST["name_ifa"]) or !isset($_POST["FORM"]["test_ifa2"]))) //or (isset($_POST["FORM"]["test_ifa2"]) and (!isset($_POST["name_ifa"]) or !isset($_POST["FORM"]["test_ifa"]))) //aggiuntivi da bloccare //or (trim($_POST[FORM][email]) == "df@fg.com") //labella toscana 29/10/2012 ) ) { //log ed email //indi_debug("FORM_ANTISPAM (".$_SERVER['REMOTE_ADDR']." ".$_POST[FORM][email].")", "monitortnx@gmail.com"); if(is_array($_POST["FORM"])) indi_log("FORM_ANTISPAM (".$_SERVER['REMOTE_ADDR']." ".$_POST['FORM']['email'].")"); //annullo tutto $_POST = array(); $_GET = array(); $_REQUEST = array(); $_SESSION = array(); } //cancello la variabile unset($_POST["name_ifa"]); if(is_array($_POST["FORM"])){ unset($_POST["FORM"]["test_ifa"]); unset($_POST["FORM"]["test_ifa2"]); if(count($_POST["FORM"]) == 0) unset($_POST["FORM"]);//se non ci sono elementi } unset($_REQUEST["name_ifa"]); if(is_array($_REQUEST["FORM"])){ unset($_REQUEST["FORM"]["test_ifa"]); unset($_REQUEST["FORM"]["test_ifa2"]); if(count($_REQUEST["FORM"]) == 0) unset($_REQUEST["FORM"]);//se non ci sono elementi } } if($DATI["INDI_BUFFER"]) ob_start(); //################################################################ //###################### AZIONI MODULI O ALTRO ################ //################################################################ d_info("Inizio","MODULI ACTION","INDI"); //pre module if(function_exists(pre_module_action_function)) pre_module_action_function(); indi_do_action(pre_module); //syncronizzo database se necessario (le funzioni sono in admin.inc.php) if($CONF['admin_db_sync'] == "SI") { d_info("Inizio","admin_db_sync","INDI"); if($CONF['admin_db_sync_auto'] == "SI" or $_GET['indi_admin_db_sync'] == 1 and (!$_REQUEST["dbg"] and !$_REQUEST["amministrazioneIndi"])) { //includo conf if($CONF['admin_db_sync_file'] and is_file($CONF['admin_db_sync_file'])) { include($CONF['admin_db_sync_file']); } //richiamo funzione indi_start_db_update(); } d_info("Fine","admin_db_sync","INDI"); } if ($CONF['mod_apache_autoconf'] == "SI") mod_apache_autoconf_init(); if ($CONF['mod_auth'] == "SI") auth_pre_page_action(); //FUNZIONE DA ESEGUIRE PRIMA DI ALTRE PRE ACTION if($DATI["pre_page_action"] != "") { d_info("Inizio","PRE_ACTION","INDI"); $DATI["pre_page_action"](); d_info("Fine","PRE_ACTION","INDI"); } if ($CONF['mod_carr'] == "SI"||$CONF['mod_carr2'] == "SI") { carr_pre_page_action(); } if ($CONF['mod_smarty'] == "SI") { smarty_pre_page_action(); } if ($CONF['mod_xfiles'] == "SI") { xfiles_pre_page_action(); } if ($CONF['mod_html'] == "SI") { html_pre_page_action(); } if ($CONF['mod_grab'] == "SI") grab_pre_page_action(); if ($CONF['mod_moduli'] == "SI") { //???da finire d("m"); mod_moduli_init_real(); d("m"); mod_moduli_init(); d("m"); } d_info("Fine","MODULI ACTION","INDI"); indi_do_action(post_module); //###################################################### //###################### REDIRECTS ################## //###################################################### //controllo se c'e' menu link e faccio il redirect forzato if(!$DATI['disable_menu_link'] && $DATI['menu_link'] != "" && is_array($MENU[$DATI['menu_link']])) { indi_redirect_pagina($DATI['menu_link']); } //controllo se c'e' menu_link_force e faccio il redirect if($DATI['menu_link_force'] != "" && !$CONF['tabellaSitemapAggiorna'] && !$_GET['t']/*10/6/2020 controllo che non ci sia t, altrimenti saltano privacy/cookie con un menu_link_force su homepage*/) { indi_redirect($DATI['menu_link_force']); } //########################################################## //###################### TEMPLATE ################### //########################################################## if($CONF['mod_templating'] != "SI") { //niente pagina inc //controllo se e' pagina di menu //###################### PAGINA_INC ######################## //creo variabile pagina_inc usata in indi per semplificare l' inclusione dei file relativi alle pagine nel menu $DATI['pagina_inc'] = str_replace("../","",$DATI['pagina_inc']); //per sicurezza if($DATI['pagina_inc'] == "") $DATI["pagina_inc"] = $DATI["pagina"]; d_info($DATI["pagina_inc"],"pagina_inc","INDI"); if (@is_file($DATI["dir_pagine"].$DATI["pagina_inc"])) $DATI["pagina_inc"] = $DATI["dir_pagine"].$DATI["pagina_inc"]; elseif (@is_file($DATI["dir_pagine"].$DATI["pagina_inc"]."_".$lang.".inc.php")) $DATI["pagina_inc"] = $DATI["dir_pagine"].$DATI["pagina_inc"]."_".$lang.".inc.php"; elseif (@is_file($DATI["dir_pagine"].$DATI["pagina_inc"].".inc.php")) $DATI["pagina_inc"] = $DATI["dir_pagine"].$DATI["pagina_inc"].".inc.php"; elseif (@is_file($DATI["dir_pagine"].$MENU[$DATI[menu_ref]]["$lang"]["pagina"].".inc.php")) $DATI["pagina_inc"] = $DATI["dir_pagine"].$MENU[$DATI['menu_ref']]["$lang"]["pagina"].".inc.php"; //da fare per cartella gruppo o cartella riferimento elseif (@is_file($DATI["dir_pagine"].$DATI['menu_ref']."/".$DATI["pagina_inc"].".inc.php")) $DATI["pagina_inc"] = $DATI["dir_pagine"].$DATI['menu_ref']."/".$DATI["pagina_inc"].".inc.php"; elseif (@is_file($DATI["dir_pagine"].$DATI['indi_menu_ref_1']."/".$DATI["pagina_inc"].".inc.php")) $DATI["pagina_inc"] = $DATI["dir_pagine"].$DATI['indi_menu_ref_1']."/".$DATI["pagina_inc"].".inc.php"; elseif (@is_file($DATI["dir_pagine"].$DATI['indi_menu_ref_1']."/".$DATI['indi_menu_ref_2']."/".$DATI["pagina_inc"].".inc.php")) $DATI["pagina_inc"] = $DATI["dir_pagine"].$DATI['indi_menu_ref_1']."/".$DATI['indi_menu_ref_2']."/".$DATI["pagina_inc"].".inc.php"; elseif (@is_file($DATI["dir_pagine"].$DATI['indi_menu_ref_2']."/".$DATI["pagina_inc"].".inc.php")) $DATI["pagina_inc"] = $DATI["dir_pagine"].$DATI['indi_menu_ref_2']."/".$DATI["pagina_inc"].".inc.php"; elseif (@is_file($DATI["dir_pagine"].$DATI['indi_menu_ref_1']."/".$DATI['indi_menu_ref_2']."/".$DATI['indi_menu_ref_3']."/".$DATI["pagina_inc"].".inc.php")) $DATI["pagina_inc"] = $DATI["dir_pagine"].$DATI['indi_menu_ref_1']."/".$DATI['indi_menu_ref_2']."/".$DATI['indi_menu_ref_3']."/".$DATI["pagina_inc"].".inc.php"; elseif (@is_file($DATI["dir_pagine"].$DATI["pagina_inc"].".php")) $DATI["pagina_inc"] = $DATI["dir_pagine"].$DATI["pagina_inc"].".php"; //elseif (@is_file($DATI["pagina_inc"])) {} else { $pagina_inc_err = 1; //d_err("Errore include pagina pagina_inc($pagina)"); //indi_404(); //indi_log_file("Errore include pagina pagina_inc($pagina)"); //404 + noindex, redirect in home page ed e-mail // //indi_dev_email("[PHP] Err include pagina ($pagina) [".$DATI["baseurl2"].$_SERVER['REQUEST_URI']."]"); //indi_redirect_pagina($DATI['pagina_def']); } d_info($DATI["pagina_inc"],"pagina_inc","INDI"); if(!$pagina_inc_err) { $indi_file_size .= filesize($DATI["pagina_inc"]); //if($CONF['VERSIONING'] == "AUTO") $indi_versioning_array[$DATI["pagina_inc"]] = "pagina"; } } //###################### GESTIONE INCLUDE ######################## d_info("Inizio","INCLUDE","INDI"); indi_do_action(pre_include); foreach($DATI as $k => $v ) if(is_string($v)){ $kk = trim(substr($k,0,strpos($k,":"))); if($kk == "file") { if(trim($v) != "NO" and $v != "") { $indi_file_include = substr($k,strlen($kk)+1); $indi_file_include = indi_tpl($indi_file_include,$DATI,1); // $GLOBALS['time3k'][$indi_file_include] = -microtime(true); if(indi_estensione_file($indi_file_include,"php")){ $funzione = '';//devo fare i due if prima di fare l'include/require, altrimenti mi può sovrascrivere $v if(stristr($v,"INC")) { $funzione = "include"; } else if(stristr($v,"REQ")) { $funzione = "require"; } if($funzione){ if(@is_file($indi_file_include)) { if($_GET['debugBootOutput2']){ echo $indi_file_include."
"; $out = ob_get_clean(); echo $out; if($out) die(); } if($funzione == 'include') include($indi_file_include); else if($funzione == 'require') require($indi_file_include); $indi_file_size .= @filesize($indi_file_include); //if($CONF['VERSIONING'] == "AUTO") $indi_versioning_array[$indi_file_include] = "include"; d_info("$indi_file_include","FILE","INDI"); } else d_err("Errore non esiste: $indi_file_include","FILE","INDI"); } } // if($GLOBALS['time3k']) $GLOBALS['time3k'][$indi_file_include] += microtime(true); // if($GLOBALS['time3k']) $GLOBALS['time3k'][$indi_file_include] = round($GLOBALS['time3k'][$indi_file_include]*10)/10; } } } //pulisco unset($v); unset($k); unset($kk); indi_do_action(post_include); d_info("Fine","INCLUDE","INDI"); if($CONF['tabellaSitemapAggiorna']){ $CONF["tabellaSitemapUsaTransazioni"] = false; $CONF["tabellaSitemapUsaLockTables"] = false; $CONF["tabellaSitemapUsaSemafori"] = function_exists("sem_acquire"); if(!$CONF["tabellaSitemapUsaSemafori"]){ $InnoDB = @db_qrs("SELECT ENGINE FROM information_schema.TABLES WHERE TABLE_SCHEMA = '".$DB['database']."' AND TABLE_NAME = 'sitemap';") == 'InnoDB'; if($InnoDB) $CONF["tabellaSitemapUsaTransazioni"] = true; else $CONF["tabellaSitemapUsaLockTables"] = true; } if($CONF["tabellaSitemapUsaSemafori"]){ tabellaSitemapAggiornaSemaforo(true);//attendo eventuale termine di altri e acquisisco blocco } if($CONF["tabellaSitemapUsaSemafori"] && !tabellaSitemapAggiornaAmILastRunningPID()){ //aspettando il semaforo potrebbero essersi accodati più processi e io quindi questo non essere l'ultimo $res = false; } else{ if($CONF["tabellaSitemapUsaTransazioni"]) db_q("START TRANSACTION"); $res = indiTabellaSitemapAggiorna($CONF["tabellaSitemapPrimaImportazione"]);//ritorna false se si interrompe rilevando un altro processo if($CONF["tabellaSitemapUsaTransazioni"]) db_q($res ? "COMMIT" : "ROLLBACK"); } if($CONF["tabellaSitemapUsaSemafori"]) tabellaSitemapAggiornaSemaforo();//sblocco semaforo if($res){ //devo essere sicuro al 100% di essere l'ultimo processo partito, altrimenti azzerando lo interromperei, perchè 0 != ultimoPID if(tabellaSitemapAggiornaAmILastRunningPID()) tabellaSitemapAggiornaSetPID(0);//svuoto PID } // else{ // $msg = "Interrompo la generazione della sitemap perchè è partito un processo dopo di me (io sono ".getmypid().", ".tabellaSitemapAggiornaKey()." è ".tabellaSitemapAggiornaGetLastRunningPID().")"; // trigger_error($msg); // } if($GLOBALS['indi_error_messages']){ die(implode("
", $GLOBALS['indi_error_messages'])); } else if($CONF["tabellaSitemapPrimaImportazione"]){ $url = "http".(!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off' ? 's' : '')."://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; //Serve per generare eventuali 301 subito (altrimenti verrebbero generati al successivo tabellaSitemapAggiorna) //qui $MENU è già riempito con gli alias della vecchia rewrite quindi meglio ricaricare invece di tentare una simulazione richiamando indiTabellaSitemapAggiorna() //il parametro tabellaSitemapAggiorna deve ncessariamente essere passato in maniera standard //in caso di haproxy questa seconda chiamata potrebbe andare su altro server in cui la tabella non è ancora aggiornata, facendo partire un altro import (non posso leggere il cookie per alla prima chiamata non c'è, viene impostato con la risposta): non mi sbatto oltre perchè nessun sito su haproxy avrà tabellaSitemap=import, o sarà già importato (e posso passarlo a true) o avrà true dalla nascita // file_get_contents( // $CONF['baseurl']."?fromPrimaImportazione=".rawurlencode($url)."&fromIp=".$_SERVER['REMOTE_ADDR']."&tabellaSitemapAggiorna=1&tabellaSitemapImportTest=".$_GET['tabellaSitemapImportTest'] // ); //con questo creo sia i 301, sia aggiorno gli altri host, se presenti tabellaSitemapAggiornaMultiHost(); $hosts = indiGetAllHosts(); $cambiati = db_qa(" SELECT old.uri as old, new.uri as new FROM sitemap AS old LEFT JOIN sitemap AS new ON old.pagina = new.pagina AND old.lang = new.lang AND old.rewId = new.rewId AND new.`status` = 200 AND old.host = new.host WHERE old.`status` = 301 AND old.host IN ('".implode("','", $hosts)."') "); $invariati = db_qa(" SELECT old.uri as old FROM sitemap AS old LEFT JOIN sitemap AS new ON old.id != new.id AND old.pagina = new.pagina AND old.lang = new.lang AND old.rewId = new.rewId AND old.host = new.host WHERE old.uri NOT IN ('robots.txt', 'sitemap') AND old.rewId = 0 AND old.`status` = 200 AND new.id IS NULL AND old.host IN ('".implode("','", $hosts)."') "); $corpo = "triggerato da $url

".count($invariati)." url invariati
".count($cambiati)." redirect 301 creati
\r\n"; if($cambiati){ $corpo .= "

redirect 301 creati

\r\n"; foreach($cambiati as $cambiato){ $corpo .= "
".indi_htmlentities($cambiato['old'])."/
 ↓
".indi_htmlentities($cambiato['new'])."/\r\n"; } } if($invariati){ $corpo .= "

url invariati

\r\n"; foreach($invariati as $invariato){ $corpo .= indi_htmlentities($invariato['old'])."/
\r\n"; } } indi_dev_email("Report prima importazione tabellaSitemap $_SERVER[HTTP_HOST] $DATI[nome_sito]", $corpo); $url = str_replace("tabellaSitemapTruncate=1", "", $url);//loopa altrimenti indi_redirect($url);//ricarico la pagina corrente perchè questa esecuzione comunque non può proseguire e potrei anche ricevere un 301 } else if($CONF['tabellaSitemapForzaAggiornamentoLive']){ //continuo l'esecuzione, ma le mappe dei link non sono avvalorate } else{ //non posso continuare l'esecuzione della pagina perchè le mappa dei link non sono avvalorate (indiLeggiTabellaSitemap non è stato chiamato) header('HTTP/1.0 200 Found');//alcuni vecchi siti sulla home con parametri danno 404 (confagrisiena rew_3), serve 200 per la chaiamta server su server da admin // ob_get_clean(); die($res ? "ok" : "KO"); } } if($CONF["tabellaSitemapPronta"]){ // if($_GET['p'] == 'sitemap' /*penso a "&& !$MENU[sitemap]" per eventuali personalizzazioni*/){ // indiTabellaSitemapXmlOutput();//fa die; // } $rewIdAlias = $MENU[$DATI['pagina']][$lang]["rewIdAlias"]; if($rewIdAlias && $_GET[$rewIdAlias]){ $current = $_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; $pos = strpos($_SERVER['HTTP_REFERER'], $_SERVER['SERVER_NAME']); if($current != str_replace(["http://", "https://"], "", $_SERVER['HTTP_REFERER']) /* qualche spider (archive.org_bot) mette come referrer lo stesso url che visita a volte con protocollo diverso */ && ($DATI['dove_sono'] == 'loc' || ($_SERVER['HTTP_REFERER'] && $pos && $pos<9 && !is_spider()))){ trigger_error("Attenzione, questo link usa il vecchio formato, controllare dove viene generato. Referer: ".$_SERVER['HTTP_REFERER']); } indi_redirect_permanent(genera_link_agg(null,null,array("id"=>null, "rewId"=>$_GET[$rewIdAlias]))); } else if($rewIdAlias){ $_GET[$rewIdAlias] = $_GET['rewId']; } } //##################### //genero md5 di DATI per cache if($GLOBALS["CONF"]["DEBUG"] == "SI") d_info($md5_DATI,"md5_DATI inizio"); $md5_DATI = md5(serialize($DATI)); $DATI[md5_DATI] = $md5_DATI; if($GLOBALS["CONF"]["DEBUG"] == "SI") d_info($md5_DATI,"md5_DATI fine"); //genero md5 per TXT if($GLOBALS["CONF"]["DEBUG"] == "SI") d_info($md5_TXT,"md5_TXT inizio"); $md5_TXT = md5(serialize($TXT)); $DATI[md5_TXT] = $md5_TXT; if($GLOBALS["CONF"]["DEBUG"] == "SI") d_info($md5_TXT,"md5_TXT fine"); //###################### TEMPLATE ######################## d_info("Inizio","TEMPLATE","INDI"); //da fare gestione template di base //pre template if(function_exists(pre_page_function)) pre_page_function(); d_info("Inizio","TEMPLATE","pre_template prima"); indi_do_action(pre_template); d_info("Inizio","TEMPLATE","pre_template dopo"); //###################### AZIONE PDF (DEPRECATA) ######################### if($_GET['indi_genera_pdf'] == 1) { if($_GET["nome_file"] != "") $nome_file = $_GET["nome_file"]; else $nome_file = $DATI['menu_txt']; indi_genera_pdf(genera_link_agg($pagina,$lang,array("indi_genera_pdf"=>null)),$nome_file.".pdf"); } //###################### AZIONE SPAMPA (DEPRECATA) ######################### //se la pagina e' nella modalita' stampa setto la variabile globale e metto i javascript per chiusura automatica e stampa if($_REQUEST["indi_stampa"] == "1" or $_REQUEST["indi_media"] == "print") { $CONF["STAMPA"] = "SI"; $CONF["MEDIA"] = "print"; //aggiungo javascript alla pagina javascript(" window.print(); //window.close(); "); } else { $CONF["STAMPA"] = "NO"; } d_info("Inizio","TEMPLATE","progress 10"); if($_GET["t"] == "stat") { //DEPRECATA statistiche e-mail include(INDI_PATH."template/_template/stat.inc.php"); } elseif($_GET["grab"]==1 and $CONF["mod_grab"] == "SI" and $CONF["dove_sono"] == "loc") { GRAB_start(); } elseif($_GET["t"] == "key") { //parole chiave in tutte le lingue include($CONF['dir_base']."template/_template/key.inc.php"); } elseif($_GET["t"] == "action") { //parole chiave in tutte le lingue include($CONF['dir_base']."template/_template/action.inc.php"); } elseif($_GET["t"] == "webservice") { $CONF['indi_error'] = "NO";//è necessario per ricevere le email degli errori //alcuni webservice utili if($_GET["q"]) { session_write_close(); $errore = trim(ob_get_clean()); ob_start(); // $q = unserialize(str_replace('\"','"',rawurldecode($_GET["q"])));//sbagliato! $q = unserialize(stripslashes($_GET["q"]));//stripslashes per magic quotes, rawurldecode non serve perchè lo fa apache! $url = "http".(!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off' ? 's' : '')."://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; if($q["tipo"] == "variabile" && in_array($q["nome"], $WEBSERVICES['variabili'])) { $out =$$q["nome"]; } elseif($q["tipo"] == "funzione" && in_array($q["nome"], array_merge($WEBSERVICES['funzioni'], ['img_resize_fix_webservice']))) { //non metto if function exists così se ci sono problemi online ci arriva una segnalazione in più if(function_exists($q["nome"])) indi_log("webservice: funzione:$q[nome]($q[parametri])"); else indi_error_handler_email("webservice: errore chiamata a funzione ($q[nome]) inesistente!", print_r(array($url, $errore), true)); $out = call_user_func_array($q["nome"], $q["parametri"]); } else{ indi_error_handler_email("webservice: Chiamata webservice non autorizzata, funzione:$q[nome]($q[parametri])", print_r(array($url, $errore), true)); $out = substr(base64_encode(serialize($_GET)), 0, 1+round(strlen($_SERVER['REQUEST_URI'])/3));// =) } if($errore .= ob_get_clean()){ indi_error_handler_email("webservice: Rilevato output durante l'esecuzione di una chiamata webservice (ignoro)", print_r(array($url, $errore), true)); } if(!$out){ indi_error_handler_email("webservice: Risultato false di una chiamata webservice", print_r(array($url, $out, $_GET["q"]), true)); } //indi_log_file("---$out----"); if($q["out"] == "json") print json_encode($out); else print serialize($out); exit(); } } else { //template speciali if($DATI['template'] == "ajax" or $DATI['template'] == "function" or $DATI['template'] == "NO") { //disabilito il template caso ajax non ho bisogno ne di cookie ne di template } else { d_info("Inizio","TEMPLATE","progress 11"); if($_GET["t"] == "vuoto") { $DATI['template'] = "vuoto.php"; } if(in_array($DATI['template'], ["ajax.php", "template_ajax.inc.php", "template_ajax.php"])) header("X-Robots-Tag: noindex"); //???? //if($CONF["MEDIA"] == "print") print "Stampa"; //GESTIONE DELLA SESSIONE PER STATISTICHE SUPEGLOBALI //controllo se le statistiche sono attive o e' attivata solo l' opzione di trace dell' ID if(($CONF["STAT"] == "SI" or $CONF["STAT_trace"] == "SI") and $DATI["SESS"] == "SI") { // Creo statistiche di base e imposta il sess id d_info("Inizio","TEMPLATE","progress 12"); creo_statistiche(); d_info("Inizio","TEMPLATE","progress 13"); //test disattivato 12/12/24 // if($DATI['sito'] == 'invoicex'){ // indi_analytics_proxy_hit(['t' => 'pageview']); // indi_analytics_proxy_hit(['en' => 'page_view', 'v'=>2]);//in background fino 24/10 11:45 - contollare dopo 25/10 // if($_SESSION['STAT']['count_pagina'] == 2) indi_analytics_proxy_hit(['en' => 'user_engagement', 'v'=>2]);//aggiunta 8/11 // } d_info("Inizio","TEMPLATE","progress 14"); } //TEMPLATE PRINCIPALE SITO //cerco il template nella cartella giusta _template/etc if($CONF['mod_templating'] != "SI") { d_info("Inizio","TEMPLATE","progress 20"); //includo template if(is_file($DATI['dir_template'].$DATI['template']) and indi_estensione_file($DATI['template'],"php")) include($DATI['dir_template'].$DATI['template']); else { if($CONF['dove_sono'] == "loc") d_err("File TEMPLATE non trovato/non valido: $DATI[template]","TEMPLATE:template","INDI"); } $indi_file_size .= @filesize($DATI['dir_template'].$DATI['template']); //if($CONF['VERSIONING'] == "AUTO") $indi_versioning_array[$DATI['dir_template'].$DATI['template']] = "template"; d_info("Inizio","TEMPLATE","progress 30"); //faccio il merge della configurazione per il template if(is_array($TEMPLATE[$DATI[template]])) $DATI = array_merge($DATI,(array)$TEMPLATE[$DATI[template]]); d_info($DATI['dir_template'].$DATI['template'],"template file","INDI"); } else { //--------------- NUOVA GESTIONE TEMPLATE CON ------------------------ //definisco il supercontenitore d_info("Inizio","templating","INDI"); //pagina inc semplificato non è necessario usarlo, c'e' solo per compatibilita if($DATI['pagina_inc'] == "") $DATI["pagina_inc"] = $DATI["pagina"].".inc.php"; //$CONF['mod_templating'] = 'SI'; //usata per pulire tutto quello che e' fuori template per evitare errori //ob_start(); //variabili usate $_template_array_part_count = 0; $_template_file_inc = NULL; $_template_file_inc_trovato = 0; $GLOBALS['_template_array_used'] = array(); //globale perche' lo uso come log anche nella funzione region_include region("supercont"); //includo in sequnza i template //se multipli scompongo e ciclo array //mettere versioning ??? //sostituisco parentesi if($DATI['template_dir_order'] == NULL) $DATI['template_dir_order'] = $DATI['block_include_dir']; //gestisco i due casi di configurazione $DATI['template_order'] = indi_tpl($DATI['template_order'],$DATI,0); //1ms $DATI['template_dir_order'] = indi_tpl($DATI['template_dir_order'],$DATI,0); //1ms //array (da fare) $_template_array = explode(",",indi_trim_stringa(trim($GLOBALS[DATI]['template_order']),",")); $_template_dir_array = explode(",",indi_trim_stringa(trim($GLOBALS[DATI]['template_dir_order']),",")); //sistemo $_template_array = array_reverse((indi_array_trim($_template_array))); $_template_dir_array = array_reverse((indi_array_trim($_template_dir_array))); //errori if(!$_template_array) d_err("parametro 'template_order' non settato !","templating","INDI"); if(!$_template_dir_array) d_err("parametro 'template_dir_order' non settato !","templating","INDI"); //aggiungo include path per i template //add_include_path($DATI['path_base'].$DATI['dir_template']); //cecca 13/04/2016 - controllo il valore di aclune variabili che se sono vuote non si capisce dove sta il problema (conversione vecchi siti) if (!$DATI["template_order"]) { indi_trigger_error("template_order vuota (mod_templating = " . $DATI['mod_templating'] . ")", E_USER_ERROR); } if (!$DATI["template_dir_order"]) { indi_trigger_error("template_dir_order vuota (mod_templating = " . $DATI['mod_templating'] . ")", E_USER_ERROR); } if (!$DATI["block_include_dir"]) { indi_trigger_error("block_include_dir vuota (mod_templating = " . $DATI['mod_templating'] . ")", E_USER_ERROR); } foreach($_template_array as $_template_file) { //estensione facilitata foreach($_template_dir_array as $_template_dir) { //tolgo php $_template_file_inc = $_template_dir.str_replace(".php","", $_template_file); //forzo php $_template_file_inc = $_template_file_inc.".php"; d_info($_template_file_inc,"templating provo inc:","INDI"); //includo i vari template if(indi_estensione_file($_template_file_inc,"php") and is_file($_template_file_inc)) { //aggiorno $indi_file_size $indi_file_size .= @filesize($_template_file_inc); //assegno variabile template $DATI["template"] = str_replace(".php","",basename($_template_file_inc)); $_template = $DATI["template"]; //faccio il merge della configurazione per il template if(is_array($TEMPLATE[$_template])) $DATI = array_merge($DATI,(array)$TEMPLATE[$_template]); //loggo $GLOBALS['_template_array_used'][] = $_template_file_inc; d_info($_template_file_inc,"templating file inc:","INDI"); include($_template_file_inc); $_template_file_inc_trovato = TRUE; //print region_include($_template_array_part); $_template_array_part_count++; if($_template_file_inc_trovato == TRUE) { break; } } } if($_template_file_inc_trovato == TRUE) break; } //caso nessun template if($_template_array_part_count == 0) { if($GLOBALS["CONF"]["DEBUG"] == "SI") d_info("Nessun template trovato!","templating","INDI"); //cecca 13/04/2016 - aggiungo visualizzazione errore, nei casi di conversione da vecchio indi_ver a indi_ver 6 non si vedeva niente indi_trigger_error("Nessun template trovato (mod_templating = " . $CONF['mod_templating'] . ")", E_USER_ERROR); } //else { //} //chiudo e poi stampo superblocco region("/supercont"); $out = region_render("supercont"); print trim($out); d_info("Fine","templating","INDI"); unset($GLOBALS['_region_array']); unset($GLOBALS['_region_current']); unset($_template); unset($_template_array); unset($_template_array_part); unset($_template_array_part_count); unset($_template_file_inc_trovato); } } } d_info("Fine","TEMPLATE","INDI"); //indi_file_size, dimensione di tutti i file inclusi da indi nel frontend $DATI['indi_file_size'] = $indi_file_size; d_info($DATI['indi_file_size'],"DATI[indi_file_size]","INDI"); //################################ POST OUTPUT ###################################### //risistemo eventuali variabili di template cambiate all' interno di INDI ($DATI) $DATI = array_merge($DATI, (array)$DATI['xxx'], (array)$DATI[$lang],(array)$DATI[$indi_location]); //$TXT = array_merge((array) $TXT["xxx"], (array) $TXT[$lang], (array) $TXT); $TXT_XXX = $TXT['xxx']; $TXT_LANG = $TXT[$lang]; //rimuovo le altre lingue se presenti @reset($LANG); while(list($k, $v)=@each($LANG)) { unset($TXT[$k]); unset($TXT['xxx']); } $TXT = array_merge((array) $TXT_XXX, (array) $TXT_LANG, (array) $TXT); unset($TXT_LANG); unset($TXT_XXX); $TXT[$lang] = $TXT; //md5 x gestione cache $md5_DATI = md5(serialize($DATI)); $DATI['md5_DATI'] = $md5_DATI; if($GLOBALS["CONF"]["DEBUG"] == "SI") d_info($md5_DATI,"md5_DATI"); //setto variabile globale per errori form if($F['f_errori']) $DATI['f_errori'] = f_errori(); if(function_exists(post_page_function)) post_page_function(); if($DATI["INDI_BUFFER"]){ //Carico la pagina appena fatta e la metto nella variabile $output_sito = ob_get_clean(); } //action post template e prima del filtro dell' output e degli header della pagina indi_do_action("post_template"); //FINE VISUALIZZAZIONE if($GLOBALS["CONF"]["DEBUG"] == "SI") { $db_time2 = indi_time(); $TIME = $db_time2 - $db_time_visualizzazione; d_info("Fine ($TIME)","VISUALIZZAZIONE SITO","INDI"); } if($DATI["INDI_BUFFER"]){ //DEPRECATA funzione aggiuntiva configurabile che gestisce l' output del sito per eventuali necessità' //torna l' output del sito (deprecata if($DATI['out_page_action'] != "") { d_info("Inizio","--------- OUT_ACTION","INDI"); $output_sito = $DATI['out_page_action']($output_sito); d_info("Fine","--------- OUT_ACTION","INDI"); } if(function_exists(pre_output_function)) $output_sito = pre_output_function($output_sito); //DEPRECATA funzione che sostituisce e genera l' output del sito if($DATI["OUTPUT_FILTRO"] != "NO") { if($GLOBALS["CONF"]["DEBUG"] == "SI") { $db_time_out = indi_time(); d_info("Inizio","OUTPUT","INDI"); } //###################################### HEADER ################################## if($DATI["OUTPUT_HEADER"] != "NO"){ if($DATI['htmlDiversoPerDevice']){ header("Vary: User-Agent"); } indi_cache_header(); } d_info($DATI['indi_cache_header'],"OUTPUT -> cache_header","INDI"); if($DATI["CAKE"] != 'NO' && !$GLOBALS["AMMINISTRABUTTON"]['pagine'][$DATI['pagina']] && is_numeric($DATI['pagina']) && $b = amministraButton()) $GLOBALS["DATI"]['body:
'.$b.'
'] = 'PRE_CLOSE'; //DEPRECATA ###################################### APC CACHE OUT (indi_apc_output = SI) ################################## if($DATI['indi_apc'] == "SI" and count($_POST) == 0 and $DATI['auth'] != "SI" and $DATI['indi_apc_output_time'] != 0 and $DATI['indi_apc_output'] != 'NO') { trigger_error("indi_apc_output (cache della pagina) attivo su questo sito"); //carlo: qui l'output è già generato, la cache è inutile if($GLOBALS["CONF"]["DEBUG"] == "SI") { d_info("APC Start","OUTPUT","INDI"); } //d(strip_tags($output_sito)); $apc_out_key = md5($id_pagina."-".md5($output_sito)."-".$md5_DATI); if($GLOBALS["CONF"]["DEBUG"] == "SI") { $db_time_out = indi_time(); d_info($apc_out_key,"OUTPUT -> APC:apc_out_key","INDI"); } $mk = apc_fetch($apc_out_key); if ($mk !== FALSE) { $output_sito = $mk; if($GLOBALS["CONF"]["DEBUG"] == "SI") { //debug $db_time2 = indi_time(); $TIME = $db_time2 - $db_time; d_info($apc_out_key,"OUTPUT -> APC:OUT:","INDI"); } } else { $output_sito = indi_output($output_sito); //print $GLOBALS["DATI"]['indi_memcache_time']; apc_store($apc_out_key, $output_sito, $DATI['indi_apc_output_time']); if($GLOBALS["CONF"]["DEBUG"] == "SI") { //debug d_info($apc_out_key,"OUTPUT -> APC:IN:","INDI"); } } } else { if($DATI["favicon_image_dir"]) trigger_error("favicon_image_dir deprecata"); if(is_file($DATI["favicon_src_file"])){ if(substr($DATI["favicon_file_path"], -11) == "favicon.ico") $DATI["favicon_file_path"] = substr($DATI["favicon_file_path"], 0, -11);//prima mettevo anche il nome del file nel path, ora è dinamico $customPath = (boolean)$DATI["favicon_file_path"]; if($DATI["favicon_file_path"] && substr($DATI["favicon_file_path"], -1) != '/') $DATI["favicon_file_path"] .= '/'; $DATI["favicon_file_path"] .= "favicon".filemtime($DATI["favicon_src_file"]).".ico"; if($_GET['favicon'] || !is_file($DATI["favicon_file_path"]) /*|| ($_GET['favicon'] && is_dir($DATI["favicon_image_dir"]))*/){ if($DATI['sito'] == 'base'){ trigger_error("Se crei la favicon in base poi ce la copiamo su tutti i siti, cancella $DATI[favicon_src_file]"); } else{ if($DATI["favicon_src_file"]){ $imgs = []; foreach([16,32,64,128,256] as $v) $imgs[] = gall(["gall_webp"=>false,"gall_q_miniatura"=>100,"gall_crop"=>"NO","gall_fill"=>"SI","gall_fill_color"=>"FFFFFF","gall_img"=>$DATI["favicon_src_file"],"gall_min_w"=>$v,"gall_min_h"=>$v,"gall_return"=>"PATH"]); } // else{ // $imgs = indi_dir_to_array($DATI["favicon_image_dir"], true); // foreach($imgs as $k=>$v) if(substr($v, -4) != ".png"){ // trigger_error("Generazione favicon: ignorato file non png: ".$v); // unset($imgs[$k]); // } // } $cmd = "convert ".implode(" ", $imgs)." ".$DATI["favicon_file_path"]; $out = system($cmd, $ret); if($ret) trigger_error($cmd . " - RISULTATO: " . $out); else if(!$customPath) copy($DATI["favicon_file_path"], "favicon.ico");//se non c'è un custom path copio anche nella root, qualche programma potrebbe cercarla lì // else chmod($DATI["favicon_file_path"], 0666);//imposto i permessi corretti if($_SERVER['REMOTE_ADDR'] == '192.168.0.177' || $_GET['debugtnx']) trigger_error("generata favicon"); } } } if($GLOBALS["CONF"]["DEBUG"] == "SI") d_info("No Cache","OUTPUT","INDI"); $output_sito = indi_output($output_sito); } if($GLOBALS["CONF"]["DEBUG"] == "SI") { $db_time2 = indi_time(); $TIME = $db_time2 - $db_time_out; d_info("Fine ($TIME)","OUTPUT","INDI"); } } if(function_exists(post_output_function)) { $output_sito= post_output_function($output_sito); // indi_log("post_output_function"); } } //$output_sito indi_do_action("post_output"); //gestione fine JOBS if(isset($_GET['job'])) indi_job_finish("FINISH from GET",$_GET['job']); //aggiorno database globale con indi_admin_refresh_db // if(($DATI['admin_refresh_db'] || $_GET['indi_admin_refresh_db']) and $_SESSION["amministrazioneIndi"] != 1) indi_admin_refresh_db(); } if($_GET['testErrori']){ $quanti = 4; for($i=0; $i<$quanti; $i++){ trigger_error("Errore uguale"); trigger_error("Errore di test con numero random: ".mt_rand()); } die("Triggerati ".($quanti*2)." errori"); } // if(!$DATI['mod_privacy_cookie']) indiAdminLog("no_mod_privacy_cookie", '', true); // else if(!$DATI['mod_pc_gdpr']) indiAdminLog("no_mod_pc_gdpr", '', true); ?>