function visited() { $q = new mysql_squid_builder(); $page = CurrentPageName(); $tpl = new templates(); $titleW = "{day}"; $t = time(); $websites = $tpl->_ENGINE_parse_body("{websites}"); $size = $tpl->_ENGINE_parse_body("{size}"); $hitsTitl = $tpl->_ENGINE_parse_body("{hits}"); if (preg_match("#^[0-9]+#", $_GET["table"])) { $timeT = $q->TIME_FROM_HOUR_TABLE($_GET["table"]); $DayTime = date("Y {l} {F} d", $timeT); } $TITLE_PAGE = "{$_GET["field"]}:{$_GET["user"]} {$titleW}"; if ($_GET["field"] == "MAC") { $userText = $q->UID_FROM_MAC($_GET["user"]); if ($userText != null) { $TITLE_PAGE = "{$userText} ({$_GET["user"]})"; } } $html = "\n\t<table class='events-table-{$t}' style='display: none' id='events-table-{$t}' style='width:99%'></table>\n<script>\n\n\$(document).ready(function(){\n\$('#events-table-{$t}').flexigrid({\n\turl: '{$page}?websites-search=yes&user={$_GET["user"]}&field={$_GET["field"]}&table={$_GET["table"]}',\n\tdataType: 'json',\n\tcolModel : [\n\t\t{display: '{$hitsTitl}', name : 'hits', width :160, sortable : false, align: 'left'},\n\t\t{display: '{$size}', name : 'size', width :184, sortable : true, align: 'left'},\n\t\t{display: '{$websites}', name : 'sitename', width :425, sortable : true, align: 'left'},\n\t],\n\n\tsearchitems : [\n\t\t{display: '{$websites}', name : 'sitename'},\n\t\t\n\t\t],\n\tsortname: 'hits',\n\tsortorder: 'desc',\n\tusepager: true,\n\ttitle: '<span style=font-size:16px>{$titleW} {$DayTime} {$TITLE_PAGE}</span>',\n\tuseRp: true,\n\trp: 50,\n\tshowTableToggleBtn: false,\n\twidth: 833,\n\theight: 503,\n\tsingleSelect: true\n\t\n\t}); \n});\n\n</script>"; echo $tpl->_ENGINE_parse_body($html); }
function REPAIR_WORKING_TABLES() { $q = new mysql_squid_builder(); $LIST_TABLES_DAYS = $q->LIST_TABLES_HOURS(); events(count($LIST_TABLES_DAYS) . " daily tables"); while (list($tablename, $ligne) = each($LIST_TABLES_DAYS)) { $xtime = $q->TIME_FROM_HOUR_TABLE($tablename); $xdate = date("Y-m-d", $xtime); $danstable = "dansguardian_events_" . date("Ymd", $xtime); if ($GLOBALS["VERBOSE"]) { echo "{$tablename}: {$danstable} = {$xdate}\n"; } $q->QUERY_SQL("INSERT IGNORE INTO tables_day (tablename,zDate) VALUES ('{$tablename}','{$xdate}')"); } $currentTABLE = date("Ymd") . "_hour"; $LIST_TABLES_dansguardian_events = $q->LIST_TABLES_dansguardian_events(); while (list($tablename, $ligne) = each($LIST_TABLES_dansguardian_events)) { $xtime = $q->TIME_FROM_DANSGUARDIAN_EVENTS_TABLE($tablename); $hour_table = date("Ymd", $xtime) . "_hour"; if ($currentTABLE == $hour_table) { continue; } if (!$q->TABLE_EXISTS($hour_table)) { events(" ####### WARNING - NO TABLE {$hour_table} #############"); } } }
function ScanDays($onlyTable = false) { $q = new mysql_squid_builder(true); $ARRAY_DAYS = array(); $tables = $q->LIST_TABLES_dansguardian_events(); while (list($tablename, $line) = each($tables)) { $dayTime = $q->TIME_FROM_DANSGUARDIAN_EVENTS_TABLE($tablename); $day = date("Y-m-d", $dayTime); $ARRAY_DAYS[$day] = $dayTime; $TABLES[$tablename] = true; } $tables = $q->LIST_TABLES_HOURS(); while (list($tablename, $line) = each($tables)) { $dayTime = $q->TIME_FROM_HOUR_TABLE($tablename); $day = date("Y-m-d", $dayTime); $ARRAY_DAYS[$day] = $dayTime; $TABLES[$tablename] = true; } $tables = $q->LIST_TABLES_YOUTUBE_DAYS(); //youtubeday_ while (list($tablename, $line) = each($tables)) { $dayTime = $q->TIME_FROM_YOUTUBE_DAY_TABLE($tablename); $day = date("Y-m-d", $dayTime); $ARRAY_DAYS[$day] = $dayTime; $TABLES[$tablename] = true; } $tables = $q->LIST_TABLES_USERSIZED(); //youtubeday_ while (list($tablename, $line) = each($tables)) { $dayTime = $q->TIME_FROM_USERSIZED_TABLE($tablename); $day = date("Y-m-d", $dayTime); $ARRAY_DAYS[$day] = $dayTime; $TABLES[$tablename] = true; } $tables = $q->LIST_TABLES_QUOTADAY(); //youtubeday_ while (list($tablename, $line) = each($tables)) { $dayTime = $q->TIME_FROM_QUOTADAY_TABLE($tablename); $day = date("Y-m-d", $dayTime); $ARRAY_DAYS[$day] = $dayTime; $TABLES[$tablename] = true; } $tables = $q->LIST_CAT_FAMDAY(); //youtubeday_ while (list($tablename, $line) = each($tables)) { $dayTime = $q->TIME_FROM_CAT_FAMDAY_TABLE($tablename); $day = date("Y-m-d", $dayTime); $ARRAY_DAYS[$day] = $dayTime; $TABLES[$tablename] = true; } $prefix = "INSERT IGNORE INTO tables_day (tablename,zDate) VALUES "; while (list($day, $dayTime) = each($ARRAY_DAYS)) { $tablename = "dansguardian_events_" . date("Ymd", $dayTime); $f[] = "('{$tablename}','{$day}')"; } if (count($f) > 0) { $q->QUERY_SQL($prefix . @implode(",", $f)); if (!$q->ok) { if ($GLOBALS["VERBOSE"]) { echo "Fatal {$q->mysql_error}\n"; } squid_admin_purge(0, "Fatal {$q->mysql_error}", "Backup process cannot be performed", __FILE__, __LINE__); ufdbguard_admin_events("Fatal {$q->mysql_error}", __FUNCTION__, __FILE__, __LINE__, "backup"); return false; } } if ($onlyTable) { return $TABLES; } return true; }
function repair_table_days_hours() { $q = new mysql_squid_builder(); $array = $q->LIST_TABLES_HOURS(); while (list($tablename, $none) = each($array)) { $time = $q->TIME_FROM_HOUR_TABLE($tablename); $date = date("Y-m-d", $time); $tablename = "dansguardian_events_" . date("Ymd", $time); echo "{$tablename} -> {$date}\n"; $q->QUERY_SQL("INSERT IGNORE INTO tables_day (tablename,zDate) VALUES ('{$tablename}','{$date}')"); } }
function process_all_tables() { if ($GLOBALS["VERBOSE"]) { echo "Loading...\n"; } $unix = new unix(); $php = $unix->LOCATE_PHP5_BIN(); $nohup = $unix->find_program("nohup"); if ($GLOBALS["VERBOSE"]) { "echo Loading done...\n"; } $pidfile = "/etc/artica-postfix/pids/" . basename(__FILE__) . "." . __FUNCTION__ . ".pid"; $timefile = "/etc/artica-postfix/pids/" . basename(__FILE__) . "." . __FUNCTION__ . ".time"; $pid = @file_get_contents($pidfile); if (!$GLOBALS["FORCE"]) { if ($pid < 100) { $pid = null; } $unix = new unix(); if ($unix->process_exists($pid, basename(__FILE__))) { if ($GLOBALS["VERBOSE"]) { echo "Already executed pid {$pid}\n"; } return; } $timeexec = $unix->file_time_min($timefile); if ($timeexec < 720) { if ($GLOBALS["VERBOSE"]) { echo "{$timeexec} <>720...\n"; } return; } $mypid = getmypid(); @file_put_contents($pidfile, $mypid); } @file_put_contents($timefile, time()); $q = new mysql_squid_builder(); $tables = $q->LIST_TABLES_HOURS(); $current_table = date("Ymd") . "_hour"; $BIGARRAY = array(); $d = 0; while (list($tablename, $ligne) = each($tables)) { if ($current_table == $tablename) { if ($GLOBALS["VERBOSE"]) { echo "{$tablename} SKIP...\n"; } continue; } $d++; $sql = "SELECT sitename,familysite,category,SUM(size) as size,SUM(hits) as hits,country \n\t\tFROM {$tablename} GROUP BY sitename,familysite,category HAVING LENGTH(category)=0"; $results = $q->QUERY_SQL($sql); if (!$q->ok) { categorize_tables_events("MySQL error (after {$d} tables)", "{$q->mysql_error}", $tablename); return; } $count = mysql_num_rows($results); if ($count == 0) { if ($GLOBALS["VERBOSE"]) { echo "{$tablename} no row...\n"; } continue; } else { if ($GLOBALS["VERBOSE"]) { echo "{$tablename} {$count} rows...\n"; } } $TIME_FROM_HOUR_TABLE = $q->TIME_FROM_HOUR_TABLE($tablename); while ($ligne = mysql_fetch_assoc($results)) { $sitename = trim($ligne["sitename"]); $familysite = trim($ligne["familysite"]); process_all_tables_percentage($sitename); if ($sitename == null) { if ($GLOBALS["VERBOSE"]) { echo "Null value for {$sitename},{$familysite} aborting\n"; } $q->QUERY_SQL("DELETE FROM {$tablename} WHERE `sitename`='{$ligne["sitename"]}'"); continue; } if ($sitename == '.') { if ($GLOBALS["VERBOSE"]) { echo "'.' value for {$sitename},{$familysite} aborting\n"; } $q->QUERY_SQL("DELETE FROM {$tablename} WHERE `sitename`='{$ligne["sitename"]}'"); continue; } if (strpos($sitename, ',') > 0) { $sitename = str_replace(",", "", $sitename); $q->QUERY_SQL("UPDATE {$tablename} SET `sitename`='{$sitename}' WHERE `sitename`='{$ligne["sitename"]}'"); } if (is_numeric($sitename)) { if ($GLOBALS["VERBOSE"]) { echo "Numeric value for {$sitename},{$familysite} aborting\n"; } $q->QUERY_SQL("DELETE FROM {$tablename} WHERE `sitename`='{$ligne["sitename"]}'"); continue; } if (strpos($sitename, ".") == 0) { if ($GLOBALS["VERBOSE"]) { echo "Seems to be a local domain for {$sitename},{$familysite} aborting\n"; } $q->QUERY_SQL("UPDATE {$tablename} SET `category`='internal' WHERE `sitename`='{$ligne["sitename"]}'"); continue; } if (!isset($BIGARRAY[$sitename])) { $BIGARRAY[$sitename]["familysite"] = $familysite; $BIGARRAY[$sitename]["country"] = $ligne["country"]; $BIGARRAY[$sitename]["size"] = $ligne["size"]; $BIGARRAY[$sitename]["hits"] = $ligne["hits"]; } else { $BIGARRAY[$sitename]["hits"] = $BIGARRAY[$ligne["sitename"]]["hits"] + $ligne["hits"]; $BIGARRAY[$sitename]["size"] = $BIGARRAY[$ligne["sitename"]]["size"] + $ligne["size"]; } $BIGARRAY[$sitename]["TIME"][$TIME_FROM_HOUR_TABLE] = true; } } $q->QUERY_SQL("TRUNCATE TABLE `notcategorized`"); $sql = "CREATE TABLE IF NOT EXISTS `notcategorized` (\n\t\t`sitename` VARCHAR(255) NOT NULL,\n\t\t`familysite` VARCHAR(255) NOT NULL,\n\t\t`domain` VARCHAR(5) NOT NULL,\n\t\t`country` VARCHAR(60) NOT NULL,\n\t\t`sent` smallint(1) NOT NULL DEFAULT 0,\n\t\t`hits` bigint(255) unsigned NOT NULL,\n\t\t`size` bigint(255) unsigned NOT NULL,\n\t\t`seen` TEXT NOT NULL,\n\t\tPRIMARY KEY (`sitename`),\n\t\tKEY `size` (`size`),\n\t\t KEY `hits` (`hits`),\n\t\t KEY `familysite` (`familysite`),\n\t\t KEY `domain` (`domain`),\n\t\t KEY `country` (`country`)\n\t\t) ENGINE=MyISAM;"; if (!$q->FIELD_EXISTS("notcategorized", "sent")) { $q->QUERY_SQL("ALTER TABLE `notcategorized` ADD `sent` smallint(1) NOT NULL DEFAULT 0, ADD INDEX (`sent`)"); } $q->QUERY_SQL($sql); if (!$q->ok) { categorize_tables_events("MySQL error (after {$d} items)", "{$q->mysql_error}", "notcategorized"); return; } if ($GLOBALS["VERBOSE"]) { echo "FINAL " . count($BIGARRAY) . " items...\n"; } if (count($BIGARRAY) > 0) { $d = 0; $prefix = "INSERT IGNORE INTO notcategorized (`sitename`,`familysite`,`country`,`domain`,`size`,`hits`,`seen`) VALUES "; while (list($sitename, $infos) = each($BIGARRAY)) { $d++; $times = array(); $sitename = mysql_escape_string2($sitename); $family = mysql_escape_string2($infos["familysite"]); $country = mysql_escape_string2($infos["country"]); $tt = explode(".", $family); unset($tt[0]); $domain = mysql_escape_string2(@implode(".", $tt)); while (list($a, $b) = each($infos["TIME"])) { $times[] = $a; } $text_time = mysql_escape_string2(serialize($times)); if ($GLOBALS["VERBOSE"]) { echo "('{$sitename}','{$family}','{$country}','{$domain}','{$infos["size"]}','{$infos["hits"]}','{$text_time}')\n"; } $f[] = "('{$sitename}','{$family}','{$country}','{$domain}','{$infos["size"]}','{$infos["hits"]}','{$text_time}')"; if (count($f) > 500) { process_all_tables_percentage("notcategorized {$d} rows..."); if ($GLOBALS["VERBOSE"]) { echo "notcategorized 500 rows...\n"; } $q->QUERY_SQL($prefix . @implode(",", $f)); if (!$q->ok) { echo $q->mysql_error . "\n"; categorize_tables_events("MySQL error (after {$d} items)", "{$q->mysql_error}", "notcategorized"); return; } $f = array(); } } if (count($f) > 0) { if ($GLOBALS["VERBOSE"]) { echo "notcategorized " . count($f) . " rows...\n"; } $q->QUERY_SQL($prefix . @implode(",", $f)); $f = array(); if (!$q->ok) { categorize_tables_events("MySQL error (after {$d} items)", "{$q->mysql_error}", "notcategorized"); return; } } } }
function items(){ $t=$_GET["t"]; $tpl=new templates(); $MyPage=CurrentPageName(); $q=new mysql_squid_builder(); $users=new usersMenus(); $sock=new sockets(); $database="squidlogs"; $search='%'; $table=$_GET["hour_table"]; $time=$q->TIME_FROM_HOUR_TABLE($table); $_GET["day"]=date("Y-m-d",$time); $page=1; $FORCE_FILTER=null; if($_GET["field"]<>null){ $FORCE_FILTER=" AND `{$_GET["field"]}`='{$_GET["value"]}'"; } if(!$q->TABLE_EXISTS($table, $database)){json_error_show("$table doesn't exists...");} if($q->COUNT_ROWS($table, $database)==0){json_error_show("No data");} $field_query=$_GET["field_query"]; $hour_table=$_GET["hour_table"]; $table="(SELECT SUM($field_query) as totalsize,familysite FROM $hour_table GROUP BY familysite) as t"; if(isset($_POST["sortname"])){if($_POST["sortname"]<>null){$ORDER="ORDER BY {$_POST["sortname"]} {$_POST["sortorder"]}";}} if(isset($_POST['page'])) {$page = $_POST['page'];} $searchstring=string_to_flexquery(); if($searchstring<>null){ $sql="SELECT COUNT(*) as TCOUNT FROM $table WHERE 1 $FORCE_FILTER $searchstring"; $ligne=mysql_fetch_array($q->QUERY_SQL($sql,$database)); $total = $ligne["TCOUNT"]; }else{ $sql="SELECT COUNT(*) as TCOUNT FROM $table WHERE 1 $FORCE_FILTER"; $ligne=mysql_fetch_array($q->QUERY_SQL($sql,$database)); $total = $ligne["TCOUNT"]; } if (isset($_POST['rp'])) {$rp = $_POST['rp'];} $pageStart = ($page-1)*$rp; $limitSql = "LIMIT $pageStart, $rp"; $sql="SELECT * FROM $table WHERE 1 $searchstring $FORCE_FILTER $ORDER $limitSql"; $results = $q->QUERY_SQL($sql,$database); if(mysql_num_rows($results)==0){ json_error_show("$sql<hr>No row",1); } $data = array(); $data['page'] = $page; $data['total'] = $total; $data['rows'] = array(); if(!$q->ok){json_error_show($q->mysql_error);} while ($ligne = mysql_fetch_assoc($results)) { $zmd5=md5(serialize($ligne)); $color="black"; $date=strtotime($ligne["zDate"]); $Hour=date("H:i",$date); $day=$_GET["day"]; //familysite size hits $urljsSIT="<a href=\"javascript:blur();\" OnClick=\"javascript:Loadjs('squid.traffic.statistics.days.php?today-zoom=yes&type={$_GET["type"]}&familysite={$ligne["familysite"]}&day=$day')\" style='font-size:16px;font-weight:bold;text-decoration:underline'>"; $urijs="s_PopUpFull('{$ligne["uri"]}','1024','900');"; $ligne["totalsize"]=FormatBytes($ligne["totalsize"]/1024); $addcache=imgsimple("net-disk-add-32.png","null","Loadjs('squid.caches32.caches-www.php?addjs-silent=yes&website={$ligne["familysite"]}')"); $sql="SELECT sitename FROM websites_caches_params WHERE sitename='{$ligne["familysite"]}'"; $ligne2=mysql_fetch_array($q->QUERY_SQL($sql)); if($ligne2<>null){ $select="Loadjs('squid.miniwebsite.tasks.php?cache-params-js=yes&sitename={$ligne["familysite"]}');"; $addcache=imgsimple("disk_share_enable-32.png","null",$select); } $data['rows'][] = array( 'id' => "$zmd5", 'cell' => array( "<span style='font-size:16px;color:$color'>{$ligne["totalsize"]}</a></span>", "<span style='font-size:12px;color:$color'>$urljsSIT{$ligne["familysite"]}</a></span>", "<span style='font-size:12px;color:$color'>$addcache</span>", ) ); } echo json_encode($data); }
function repair() { $q = new mysql_squid_builder(); $C = 0; $currentDay = date("Ymd"); $LIST_TABLES_HOURS = $q->LIST_TABLES_HOURS(); while (list($tablename, $value) = each($LIST_TABLES_HOURS)) { $xtime = $q->TIME_FROM_HOUR_TABLE($tablename); if (date("Ymd", $xtime) == $currentDay) { continue; } $DayTable = date("Ymd", $xtime) . "_hour"; if (!$q->TABLE_EXISTS($DayTable)) { continue; } $tablenameS = "dansguardian_events_" . date("Ymd", $xtime); $sql = "SELECT COUNT(`sitename`) as tcount FROM {$DayTable} WHERE LENGTH(`category`)=0"; $ligne2 = mysql_fetch_array($q->QUERY_SQL($sql)); $max = $ligne2["tcount"]; if ($GLOBALS["VERBOSE"]) { echo "{$DayTable}/{$tablenameS} = {$max} no categorized\n"; } $sql = "UPDATE tables_day SET `not_categorized`={$max} WHERE tablename='{$tablenameS}'"; $q->QUERY_SQL($sql); } }
function UserSizeD() { $q = new mysql_squid_builder(); $TABLES = $q->LIST_TABLES_HOURS(); $Current = date("Ymd") . "_hour"; $COUNTOF = count($TABLES); $pe = 0; while (list($table_hour, $val) = each($TABLES)) { $pe++; if ($table_hour == $Current) { continue; } $CountDeSource = $q->COUNT_ROWS($table_hour); if ($CountDeSource == 0) { continue; } $xtime = $q->TIME_FROM_HOUR_TABLE($table_hour); $DestTable = "UserSizeD_" . date("Ymd", $xtime); $zDate = date("Y-m-d", $xtime); events_tail("{$zDate}: {$DestTable} {$pe}/{$COUNTOF}"); if (!$q->TABLE_EXISTS($DestTable)) { UserSizeD_REPAIR($zDate); continue; } if ($q->COUNT_ROWS($DestTable) == 0) { UserSizeD_REPAIR($zDate); continue; } } }
function MONTH_TABLE_FROM_MEMBER_DAY($tablesource) { $q = new mysql_squid_builder(); $time = $q->TIME_FROM_HOUR_TABLE($tablesource); $DAY = date("d", $time); $YEAR = date("Y", $time); $MONTH = date("m", $time); $month_table = date("Ym", $time) . "_members"; $CurrentTable = date("Ymd") . "_members"; if ($CurrentTable == $tablesource) { return; } $q->CreateMembersMonthTable($month_table); $results = $q->QUERY_SQL("SELECT SUM(hits) as hits,SUM(size) as size, MAC,client,hostname,uid FROM {$tablesource} GROUP BY MAC,client,hostname,uid"); if (!$q->ok) { echo $q->mysql_error . "\n"; return; } $sum = mysql_num_rows($results); if ($sum == 0) { echo "{$tablesource} Nothing!\n"; return; } echo "Month table:{$month_table} Day {$DAY} {$sum} rows\n"; $prefix = "INSERT IGNORE INTO `{$month_table}` (zMD5,client,`day`,size,hits,uid,MAC,hostname) VALUES "; $IP = new IP(); $d = 0; while ($ligne = @mysql_fetch_array($results, MYSQL_ASSOC)) { $zMD5 = md5(serialize($ligne)); $client = mysql_escape_string2($ligne["client"]); $uid = mysql_escape_string2($ligne["uid"]); $MAC = mysql_escape_string2($ligne["MAC"]); $hostname = mysql_escape_string2($ligne["hostname"]); $size = $ligne["size"]; $hits = $ligne["hits"]; if ($IP->isValid($uid)) { $uid = null; } $row[] = "('{$zMD5}','{$client}','{$DAY}','{$size}','{$hits}','{$uid}','{$MAC}','{$hostname}')"; $d++; if (count($row) > 500) { $q->QUERY_SQL($prefix . @implode(",", $row)); build_progress("Insterting " . count($row) . " elements", 20); echo "Added {$d} rows\n"; $row = array(); } } if (count($row) > 0) { $q->QUERY_SQL($prefix . @implode(",", $row)); build_progress("Insterting " . count($row) . " elements", 20); echo "Added {$d} rows\n"; $row = array(); } }
function members_repair() { $unix = new unix(); $q = new mysql_squid_builder(); $pidfile = "/etc/artica-postfix/pids/" . basename(__FILE__) . "." . __FUNCTION__ . ".pid"; $pid = @file_get_contents($pidfile); if (!$GLOBALS["FORCE"]) { if ($pid < 100) { $pid = null; } $unix = new unix(); if ($unix->process_exists($pid, basename(__FILE__))) { if ($GLOBALS["VERBOSE"]) { echo "Already executed pid {$pid}\n"; } return; } $mypid = getmypid(); @file_put_contents($pidfile, $mypid); } $C = 0; $currentDay = date("Ymd"); $LIST_TABLES_HOURS = $q->LIST_TABLES_HOURS(); while (list($tablename, $value) = each($LIST_TABLES_HOURS)) { $xtime = $q->TIME_FROM_HOUR_TABLE($tablename); if (date("Ymd", $xtime) == $currentDay) { continue; } $member_table = date("Ymd", $xtime) . "_members"; $users_table = date("Ymd", $xtime) . "_users"; $source_table = "dansguardian_events_" . date("Ymd", $xtime); if (!$q->TABLE_EXISTS($member_table)) { if ($GLOBALS["VERBOSE"]) { echo "{$source_table} -> {$member_table} -> BUILD\n"; } stats_admin_events(1, "Repair: Members {$source_table} -> {$member_table}", null, __FILE__, __LINE__); if (members_hours_perfom($source_table, $member_table)) { users_day_perfom($member_table, $users_table); $C++; } continue; } if ($q->COUNT_ROWS($tablename) > 0) { if ($q->COUNT_ROWS($member_table) == 0) { if (members_hours_perfom($source_table, $member_table)) { stats_admin_events(2, "Repair: Members Success from \"{$source_table}\" to \"{$member_table}\"", null, __FILE__, __LINE__); users_day_perfom($member_table, $users_table); $C++; } continue; } } if ($GLOBALS["VERBOSE"]) { echo "{$source_table} -> {$member_table} OK\n"; } } $php = $unix->LOCATE_PHP5_BIN(); if ($C > 0) { shell_exec("{$php} /usr/share/artica-postfix/exec.squid.stats.totals.php --repair-members --byschedule"); } }