| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734 |
- <?php
- // -------------------------------------------------------------------------------
- // | net2ftp: a web based FTP client |
- // | Copyright (c) 2003-2013 by David Gartner |
- // | |
- // | This program is free software; you can redistribute it and/or |
- // | modify it under the terms of the GNU General Public License |
- // | as published by the Free Software Foundation; either version 2 |
- // | of the License, or (at your option) any later version. |
- // | |
- // -------------------------------------------------------------------------------
- // **************************************************************************************
- // **************************************************************************************
- // ** **
- // ** **
- function logAccess() {
- // --------------
- // This function logs user accesses to the site
- // --------------
- // -------------------------------------------------------------------------
- // Global variables
- // -------------------------------------------------------------------------
- global $net2ftp_globals, $net2ftp_settings, $net2ftp_result;
- if ($net2ftp_settings["log_access"] == "yes") {
- // -------------------------------------------------------------------------
- // Date and time
- // -------------------------------------------------------------------------
- $date = date("Y-m-d");
- $time = date("H:i:s");
- // -------------------------------------------------------------------------
- // Logging to the database
- // -------------------------------------------------------------------------
- if ($net2ftp_settings["use_database"] == "yes") {
- // ----------------------------------------------
- // Do not log accesses, errors and consumption while the logs are being rotated
- // ----------------------------------------------
- $logStatus = getLogStatus();
- if ($net2ftp_result["success"] == false) { return false; }
- if ($logStatus != 0) { return true; }
- // ----------------------------------------------
- // Input checks
- // ----------------------------------------------
- // Add slashes to variables which are used in a SQL query, and which are
- // potentially unsafe (supplied by the user).
- // $date is calculated in this function
- // $time is calculated in this function
- $REMOTE_ADDR_safe = addslashes($net2ftp_globals["REMOTE_ADDR"]);
- $REMOTE_PORT_safe = addslashes($net2ftp_globals["REMOTE_PORT"]);
- $HTTP_USER_AGENT_safe = addslashes($net2ftp_globals["HTTP_USER_AGENT"]);
- $PHP_SELF_safe = addslashes($net2ftp_globals["PHP_SELF"]);
- if (isset($net2ftp_globals["consumption_datatransfer"]) == true) {
- $consumption_datatransfer_safe = addslashes($net2ftp_globals["consumption_datatransfer"]);
- }
- else {
- $consumption_datatransfer_safe = "0";
- }
- if (isset($net2ftp_globals["consumption_executiontime"]) == true) {
- $consumption_executiontime_safe = addslashes($net2ftp_globals["consumption_executiontime"]);
- }
- else {
- $consumption_executiontime_safe = "0";
- }
- $net2ftp_ftpserver_safe = addslashes($net2ftp_globals["ftpserver"]);
- $net2ftp_username_safe = addslashes($net2ftp_globals["username"]);
- $state_safe = addslashes($net2ftp_globals["state"]);
- $state2_safe = addslashes($net2ftp_globals["state2"]);
- $screen_safe = addslashes($net2ftp_globals["screen"]);
- $directory_safe = addslashes($net2ftp_globals["directory"]);
- $entry_safe = addslashes($net2ftp_globals["entry"]);
- $HTTP_REFERER_safe = addslashes($net2ftp_globals["HTTP_REFERER"]);
- // ----------------------------------------------
- // Connect to the DB
- // ----------------------------------------------
- $mydb = connect2db();
- if ($net2ftp_result["success"] == false) { return false; }
- // ----------------------------------------------
- // Add record to the database table
- // ----------------------------------------------
- $sqlquery1 = "INSERT INTO net2ftp_log_access VALUES(null, '$date', '$time', '$REMOTE_ADDR_safe', '$REMOTE_PORT_safe', '$HTTP_USER_AGENT_safe', '$PHP_SELF_safe', '$consumption_datatransfer_safe', '$consumption_executiontime_safe', '$net2ftp_ftpserver_safe', '$net2ftp_username_safe', '$state_safe', '$state2_safe', '$screen_safe', '$directory_safe', '$entry_safe', '$HTTP_REFERER_safe')";
- $result1 = mysql_query($sqlquery1);
- if ($result1 == false) {
- $errormessage = __("Unable to execute the SQL query.");
- setErrorVars(false, $errormessage, debug_backtrace(), __FILE__, __LINE__);
- return false;
- }
- $nrofrows1 = mysql_affected_rows($mydb);
- $net2ftp_globals["log_access_id"] = mysql_insert_id();
- } // end if use_database
- // -------------------------------------------------------------------------
- // Logging to the system log
- // -------------------------------------------------------------------------
- if ($net2ftp_settings["use_syslog"] == "yes") {
- // ----------------------------------------------
- // Get consumption values
- // ----------------------------------------------
- if (isset($net2ftp_globals["consumption_datatransfer"]) == true) {
- $consumption_datatransfer = $net2ftp_globals["consumption_datatransfer"];
- }
- else {
- $consumption_datatransfer = "0";
- }
- if (isset($net2ftp_globals["consumption_executiontime"]) == true) {
- $consumption_executiontime = $net2ftp_globals["consumption_executiontime"];
- }
- else {
- $consumption_executiontime = "0";
- }
- // ----------------------------------------------
- // Create message
- // ----------------------------------------------
- $message2log = "$date $time " . $net2ftp_globals["REMOTE_ADDR"] . " " . $net2ftp_globals["REMOTE_PORT"] . " " . $net2ftp_globals["PHP_SELF"] . " " . $consumption_datatransfer . " " . $consumption_executiontime . " " . $net2ftp_globals["ftpserver"] . " " . $net2ftp_globals["username"] . " " . $net2ftp_globals["state"] . " " . $net2ftp_globals["state2"] . " " . $net2ftp_globals["screen"] . " " . $net2ftp_globals["directory"] . " " . $net2ftp_globals["entry"];
- $result2 = openlog($net2ftp_settings["syslog_ident"], 0, $net2ftp_settings["syslog_facility"]);
- if ($result2 == false) {
- $errormessage = __("Unable to open the system log.");
- setErrorVars(false, $errormessage, debug_backtrace(), __FILE__, __LINE__);
- return false;
- }
- // ----------------------------------------------
- // Write message to system logger
- // ----------------------------------------------
- $result3 = syslog($net2ftp_settings["syslog_priority"], $message2log);
- if ($result3 == false) {
- $errormessage = __("Unable to write a message to the system log.");
- setErrorVars(false, $errormessage, debug_backtrace(), __FILE__, __LINE__);
- return false;
- }
- } // end if use_syslog
- } // end if log_access
- } // end logAccess()
- // ** **
- // ** **
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // ** **
- // ** **
- function logError() {
- // --------------
- // This function logs user accesses to the site
- //
- // IMPORTANT: this function uses, but does not change the global $net2ftp_result[""] variables.
- // It returns true on success, false on failure.
- // --------------
- // -------------------------------------------------------------------------
- // Global variables
- // -------------------------------------------------------------------------
- global $net2ftp_globals, $net2ftp_settings, $net2ftp_result;
- if ($net2ftp_settings["log_error"] == "yes") {
- // -------------------------------------------------------------------------
- // Take a copy of the $net2ftp_result
- // If an error occurs within logError, logError will return false and reset the
- // $net2ftp_result variable to it's original value
- // Also if no error occurs logError will return the variable to it's original value
- // -------------------------------------------------------------------------
- $net2ftp_result_original = $net2ftp_result;
- setErrorVars(true, "", "", "", "");
- // -------------------------------------------------------------------------
- // Errormessage and debug backtrace
- // -------------------------------------------------------------------------
- $errormessage = addslashes($net2ftp_result_original["errormessage"]);
- $debug_backtrace = "";
- $i = sizeof($net2ftp_result_original["debug_backtrace"])-1;
- if ($i > 0) {
- $debug_backtrace .= addslashes("function " . $net2ftp_result_original["debug_backtrace"][$i]["function"] . " (" . $net2ftp_result_original["debug_backtrace"][$i]["file"] . " on line " . $net2ftp_result_original["debug_backtrace"][$i]["line"] . ")\n");
- for ($j=0; $j<sizeof($net2ftp_result_original["debug_backtrace"][$i]["args"]); $j++) {
- $debug_backtrace .= addslashes("argument $j: " . $net2ftp_result_original["debug_backtrace"][$i]["args"][$j] . "\n");
- }
- }
- // -------------------------------------------------------------------------
- // Date and time
- // -------------------------------------------------------------------------
- $date = date("Y-m-d");
- $time = date("H:i:s");
- // -------------------------------------------------------------------------
- // Logging to the database
- // -------------------------------------------------------------------------
- if ($net2ftp_settings["use_database"] == "yes") {
- // ----------------------------------------------
- // Do not log accesses and errors while the logs are being rotated
- // ----------------------------------------------
- $logStatus = getLogStatus();
- if ($net2ftp_result["success"] == false) { return false; }
- if ($logStatus != 0) { return true; }
- // ----------------------------------------------
- // Input checks
- // ----------------------------------------------
- // Add slashes to variables which are used in a SQL query, and which are
- // potentially unsafe (supplied by the user).
- // $date is calculated in this function
- // $time is calculated in this function
- $net2ftp_ftpserver_safe = addslashes($net2ftp_globals["ftpserver"]);
- $net2ftp_username_safe = addslashes($net2ftp_globals["username"]);
- $state_safe = addslashes($net2ftp_globals["state"]);
- $state2_safe = addslashes($net2ftp_globals["state2"]);
- $directory_safe = addslashes($net2ftp_globals["directory"]);
- $REMOTE_ADDR_safe = addslashes($net2ftp_globals["REMOTE_ADDR"]);
- $REMOTE_PORT_safe = addslashes($net2ftp_globals["REMOTE_PORT"]);
- $HTTP_USER_AGENT_safe = addslashes($net2ftp_globals["HTTP_USER_AGENT"]);
- // ----------------------------------------------
- // Connect to the DB
- // ----------------------------------------------
- $mydb = connect2db();
- if ($net2ftp_result["success"] == false) {
- setErrorVars($net2ftp_result_original["success"], $net2ftp_result_original["errormessage"], $net2ftp_result_original["debug_backtrace"], $net2ftp_result_original["file"], $net2ftp_result_original["line"]);
- return false;
- }
- // ----------------------------------------------
- // Add record to the database table
- // ----------------------------------------------
- $sqlquerystring = "INSERT INTO net2ftp_log_error VALUES('$date', '$time', '$net2ftp_ftpserver_safe', '$net2ftp_username_safe', '$errormessage', '$debug_backtrace', '$state_safe', '$state2_safe', '$directory_safe', '$REMOTE_ADDR_safe', '$REMOTE_PORT_safe', '$HTTP_USER_AGENT_safe')";
- $result_mysql_query = mysql_query($sqlquerystring);
- if ($result_mysql_query == false) {
- setErrorVars($net2ftp_result_original["success"], $net2ftp_result_original["errormessage"], $net2ftp_result_original["debug_backtrace"], $net2ftp_result_original["file"], $net2ftp_result_original["line"]);
- return false;
- }
- } // end if use_database
- // -------------------------------------------------------------------------
- // Logging to the system log
- // -------------------------------------------------------------------------
- if ($net2ftp_settings["use_syslog"] == "yes") {
- // ----------------------------------------------
- // Get consumption values
- // ----------------------------------------------
- if (isset($net2ftp_globals["consumption_datatransfer"]) == true) {
- $consumption_datatransfer = $net2ftp_globals["consumption_datatransfer"];
- }
- else {
- $consumption_datatransfer = "0";
- }
- if (isset($net2ftp_globals["consumption_executiontime"]) == true) {
- $consumption_executiontime = $net2ftp_globals["consumption_executiontime"];
- }
- else {
- $consumption_executiontime = "0";
- }
- // ----------------------------------------------
- // Create message
- // ----------------------------------------------
- $message2log = "$date $time " . $net2ftp_globals["ftpserver"] . " " . $net2ftp_globals["username"] . " " . $net2ftp_result["errormessage"] . " $debug_backtrace " . $net2ftp_globals["state"] . " " . $net2ftp_globals["state2"] . " " . $net2ftp_globals["directory"] . " " . $net2ftp_globals["REMOTE_ADDR"] . " " . $net2ftp_globals["HTTP_USER_AGENT"];
- $result2 = openlog($net2ftp_settings["syslog_ident"], 0, $net2ftp_settings["syslog_facility"]);
- if ($result2 == false) {
- $errormessage = __("Unable to open the system log.");
- setErrorVars(false, $errormessage, debug_backtrace(), __FILE__, __LINE__);
- return false;
- }
- // ----------------------------------------------
- // Write message to system logger
- // ----------------------------------------------
- $result3 = syslog($net2ftp_settings["syslog_priority"], $message2log);
- if ($result3 == false) {
- $errormessage = __("Unable to write a message to the system log.");
- setErrorVars(false, $errormessage, debug_backtrace(), __FILE__, __LINE__);
- return false;
- }
- } // end if use_syslog
- // -------------------------------------------------------------------------
- // Reset the variable to it's original value
- // -------------------------------------------------------------------------
- setErrorVars($net2ftp_result_original["success"], $net2ftp_result_original["errormessage"], $net2ftp_result_original["debug_backtrace"], $net2ftp_result_original["file"], $net2ftp_result_original["line"]);
- } // end if logErrors
- } // end logError()
- // ** **
- // ** **
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // ** **
- // ** **
- function getLogStatus() {
- // --------------
- // This function reads the log rotation status from the database.
- // --------------
- // -------------------------------------------------------------------------
- // Global variables
- // -------------------------------------------------------------------------
- global $net2ftp_globals, $net2ftp_settings, $net2ftp_result;
- // -------------------------------------------------------------------------
- // Initial checks
- // -------------------------------------------------------------------------
- // Verify if a database is used. If not: don't continue.
- if ($net2ftp_settings["use_database"] != "yes") { return true; }
- // -------------------------------------------------------------------------
- // Determine current month and last month
- // -------------------------------------------------------------------------
- $currentmonth = date("Ym"); // e.g. 201207
- $lastmonth = date("Ym", mktime(0, 0, 0, date("m")-1, date("d"), date("Y")));
- // -------------------------------------------------------------------------
- // Connect to the database
- // -------------------------------------------------------------------------
- $mydb = connect2db();
- if ($net2ftp_result["success"] == false) { return false; }
- // -------------------------------------------------------------------------
- // Get log rotation status
- // -------------------------------------------------------------------------
- $sqlquery1 = "SELECT status FROM net2ftp_log_status WHERE month = '$currentmonth';";
- $result1 = mysql_query("$sqlquery1") or die("Unable to execute SQL SELECT query (getLogStatus > sqlquery1) <br /> $sqlquery1");
- $nrofrows1 = mysql_num_rows($result1);
- if ($nrofrows1 == 0) {
- $logStatus = 1;
- }
- elseif ($nrofrows1 == 1) {
- $resultRow1 = mysql_fetch_row($result1);
- $logStatus = $resultRow1[0];
- }
- else {
- setErrorVars(false, __("Table net2ftp_log_status contains duplicate entries."), debug_backtrace(), __FILE__, __LINE__);
- return false;
- }
- // Return $logStatus
- return $logStatus;
- } // End getLogStatus
- // ** **
- // ** **
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // ** **
- // ** **
- function putLogStatus($logStatus) {
- // --------------
- // This function writes the log rotation status to the database.
- // --------------
- // -------------------------------------------------------------------------
- // Global variables
- // -------------------------------------------------------------------------
- global $net2ftp_globals, $net2ftp_settings, $net2ftp_result;
- // -------------------------------------------------------------------------
- // Initial checks
- // -------------------------------------------------------------------------
- // Verify if a database is used. If not: don't continue.
- if ($net2ftp_settings["use_database"] != "yes") { return true; }
- // -------------------------------------------------------------------------
- // Determine current month and last month
- // -------------------------------------------------------------------------
- $currentmonth = date("Ym"); // e.g. 201207
- $lastmonth = date("Ym", mktime(0, 0, 0, date("m")-1, date("d"), date("Y")));
- $datetime = mytime();
- // -------------------------------------------------------------------------
- // Connect to the database
- // -------------------------------------------------------------------------
- $mydb = connect2db();
- if ($net2ftp_result["success"] == false) { return false; }
- // -------------------------------------------------------------------------
- // Put log rotation status
- // -------------------------------------------------------------------------
- $sqlquery1 = "SELECT status, changelog FROM net2ftp_log_status WHERE month = '$currentmonth';";
- $result1 = mysql_query("$sqlquery1");
- $nrofrows1 = mysql_num_rows($result1);
- if ($nrofrows1 == 1) {
- $resultRow1 = mysql_fetch_row($result1);
- $logStatus_old = $resultRow1[0];
- $changelog_old = $resultRow1[1];
- $changelog_new = $changelog_old . "From $logStatus_old to $logStatus on $datetime. ";
- $sqlquery2 = "UPDATE net2ftp_log_status SET status = '" . $logStatus . "', changelog = '" . $changelog_new . "' WHERE month = '$currentmonth';";
- $result2 = mysql_query("$sqlquery2");
- $nrofrows2 = mysql_affected_rows($mydb);
- }
- // Don't check on the UPDATE nr of rows, because when the values in the variables and in the table are the same,
- // the $nrofrows2 is set to 0.
- elseif ($nrofrows1 == 0) {
- $changelog_new = "Set to $logStatus on $datetime. ";
- $sqlquery3 = "INSERT INTO net2ftp_log_status VALUES('$currentmonth', '" . $logStatus . "', '" . $changelog_new . "');";
- $result3 = mysql_query("$sqlquery3");
- $nrofrows3 = mysql_affected_rows($mydb);
- if ($nrofrows3 != 1) {
- setErrorVars(false, __("Table net2ftp_log_status could not be updated."), debug_backtrace(), __FILE__, __LINE__);
- return false;
- }
- }
- else {
- setErrorVars(false, __("Table net2ftp_log_status contains duplicate entries."), debug_backtrace(), __FILE__, __LINE__);
- return false;
- }
- // -------------------------------------------------------------------------
- // Return true
- // -------------------------------------------------------------------------
- return true;
- } // End putLogStatus
- // ** **
- // ** **
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // ** **
- // ** **
- function emptyLogs($datefrom, $dateto) {
- // --------------
- // This function deletes the log records for the dates between $datefrom
- // and $dateto.
- // The global variable $net2ftp_output["emptyLogs"] is filled with result messages.
- // The function returns true on success, false on failure.
- // --------------
- // -------------------------------------------------------------------------
- // Global variables
- // -------------------------------------------------------------------------
- global $net2ftp_globals, $net2ftp_result, $net2ftp_output;
- $toreturn = true;
- // -------------------------------------------------------------------------
- // Connect to the database
- // -------------------------------------------------------------------------
- $mydb = connect2db();
- if ($net2ftp_result["success"] == false) { return false; }
- $tables[1] = "net2ftp_log_access";
- $tables[2] = "net2ftp_log_error";
- $tables[3] = "net2ftp_log_consumption_ftpserver";
- $tables[4] = "net2ftp_log_consumption_ipaddress";
- // -------------------------------------------------------------------------
- // Execute the queries
- // -------------------------------------------------------------------------
- for ($i=1; $i<=sizeof($tables); $i++) {
- $sqlquery_empty = "DELETE FROM $tables[$i] WHERE date BETWEEN '$datefrom' AND '$dateto';";
- $result_empty[$i] = mysql_query("$sqlquery_empty");
- $sqlquery_optimize = "OPTIMIZE TABLE `" . $tables[$i] . "`;";
- $result_optimize[$i] = mysql_query("$sqlquery_optimize");
- if ($result_empty[$i] == true) {
- $net2ftp_output["emptyLogs"][] = __("The table <b>%1\$s</b> was emptied successfully.", $tables[$i]);
- }
- else {
- $toreturn = false;
- $net2ftp_output["emptyLogs"][] = __("The table <b>%1\$s</b> could not be emptied.", $tables[$i]);
- }
- if ($result_optimize[$i] == true) {
- $net2ftp_output["emptyLogs"][] = __("The table <b>%1\$s</b> was optimized successfully.", $tables[$i]);
- }
- else {
- $toreturn = false;
- $net2ftp_output["emptyLogs"][] = __("The table <b>%1\$s</b> could not be optimized.", $tables[$i]);
- }
- } // end for
- return $toreturn;
- } // end emptyLogs()
- // ** **
- // ** **
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // ** **
- // ** **
- function rotateLogs() {
- // --------------
- // Rotate the tables
- // net2ftp_log_access = active table
- // net2ftp_log_access_YYYYMM = archive table with information of month MM and year YYYY
- // net2ftp_log_access_template = template table (empty table)
- //
- // To avoid that the log rotation actions would be executed multiple times at
- // the end of the period, a "log rotation status" is used:
- // 0 = no rotation needed
- // 1 = step 1 not yet started (renaming active tables to archived tables)
- // 2 = step 1 in progress
- // 3 = step 2 not yet started (copying template tables to the active tables)
- // 4 = step 2 in progress
- // 5 = step 3 not yet started (dropping oldest archive tables)
- // 6 = step 3 in progress
- // --------------
- // -------------------------------------------------------------------------
- // Global variables
- // -------------------------------------------------------------------------
- global $net2ftp_globals, $net2ftp_settings, $net2ftp_result, $net2ftp_output;
- $toreturn = true;
- // -------------------------------------------------------------------------
- // Verify if a database is used. If not: don't continue.
- // -------------------------------------------------------------------------
- if ($net2ftp_settings["use_database"] != "yes") { return true; }
- // -------------------------------------------------------------------------
- // Check if the setting is within the allowed range; if not, set it to 12 months
- // -------------------------------------------------------------------------
- if (!($net2ftp_settings["log_length_months"] > 1 && $net2ftp_settings["log_length_months"] < 99)) {
- $net2ftp_settings["log_length_months"] = 12;
- }
- // -------------------------------------------------------------------------
- // Current month, next month, previous month
- // -------------------------------------------------------------------------
- $currentmonth = date("Ym"); // e.g. 201207
- $lastmonth = date("Ym", mktime(0, 0, 0, date("m")-1, date("d"), date("Y")));
- $nextmonth = date("Ym", mktime(0, 0, 0, date("m")+1, date("d"), date("Y")));
- $dropmonth = date("Ym", mktime(0, 0, 0, date("m")-$net2ftp_settings["log_length_months"]-1, date("d"), date("Y")));
- // -------------------------------------------------------------------------
- // Connect to the database
- // -------------------------------------------------------------------------
- $mydb = connect2db();
- if ($net2ftp_result["success"] == false) { return false; }
- // -------------------------------------------------------------------------
- // Get the log rotation status
- // -------------------------------------------------------------------------
- $logStatus = getLogStatus();
- if ($net2ftp_result["success"] == false) { return false; }
- // No log rotation needed
- if ($logStatus === 0) { return true; }
- // -------------------------------------------------------------------------
- // Table names and SQL queries to create the tables
- // -------------------------------------------------------------------------
- $tables[1]["name"] = "net2ftp_log_access";
- $tables[2]["name"] = "net2ftp_log_error";
- $tables[3]["name"] = "net2ftp_log_consumption_ftpserver";
- $tables[4]["name"] = "net2ftp_log_consumption_ipaddress";
- // -------------------------------------------------------------------------
- // step 1 of rotation: rename active tables to archived tables
- // -------------------------------------------------------------------------
- if ($logStatus == 1) {
- // Set the log status to indicate this step is in progress
- putLogStatus(2);
- if ($net2ftp_result["success"] == false) { return false; }
- // Execute the step
- for ($i=1; $i<=sizeof($tables); $i++) {
- $table = $tables[$i]["name"]; // Example: net2ftp_log_access
- $table_archive = $table . "_" . $lastmonth; // Example: net2ftp_log_access_201206
- $table_archive_drop = $table . "_" . $dropmonth; // Example: net2ftp_log_access_201106
- $sqlquery_rename = "RENAME TABLE $table TO $table_archive";
- $result_rename[$i] = mysql_query("$sqlquery_rename");
- if ($result_rename[$i] == true) {
- $net2ftp_output["rotateLogs"][] = __("The log tables were renamed successfully.");
- }
- else {
- $toreturn = false;
- $net2ftp_output["rotateLogs"][] = __("The log tables could not be renamed.");
- }
- } // end for
- // Set the log status to indicate this step is in done and the next can start
- putLogStatus(3);
- if ($net2ftp_result["success"] == false) { return false; }
- }
- // -------------------------------------------------------------------------
- // step 2 of rotation: copy template tables to the active
- // -------------------------------------------------------------------------
- elseif ($logStatus == 3) {
- // Set the log status to indicate this step is in progress
- putLogStatus(4);
- if ($net2ftp_result["success"] == false) { return false; }
- // Execute the step
- for ($i=1; $i<=sizeof($tables); $i++) {
- $table = $tables[$i]["name"]; // Example: net2ftp_log_access
- $table_archive = $table . "_" . $lastmonth; // Example: net2ftp_log_access_201206
- $table_archive_drop = $table . "_" . $dropmonth; // Example: net2ftp_log_access_201106
- $sqlquery_copy = "CREATE TABLE $table LIKE $table_archive";
- $result_copy[$i] = mysql_query("$sqlquery_copy");
- if ($result_copy[$i] == true) {
- $net2ftp_output["rotateLogs"][] = __("The log tables were copied successfully.");
- }
- else {
- $toreturn = false;
- $net2ftp_output["rotateLogs"][] = __("The log tables could not be copied.");
- }
- } // end for
- // Set the log status to indicate this step is in done and the next can start
- putLogStatus(5);
- if ($net2ftp_result["success"] == false) { return false; }
- }
- // -------------------------------------------------------------------------
- // step 3 of rotation: drop oldest archive tables
- // -------------------------------------------------------------------------
- elseif ($logStatus == 5) {
- // Set the log status to indicate this step is in progress
- putLogStatus(6);
- if ($net2ftp_result["success"] == false) { return false; }
- // Execute the step
- for ($i=1; $i<=sizeof($tables); $i++) {
- $table = $tables[$i]["name"]; // Example: net2ftp_log_access
- $table_archive = $table . "_" . $lastmonth; // Example: net2ftp_log_access_201206
- $table_archive_drop = $table . "_" . $dropmonth; // Example: net2ftp_log_access_201106
- $sqlquery_drop = "DROP TABLE IF EXISTS $table_archive_drop;";
- $result_drop[$i] = mysql_query("$sqlquery_drop");
- if ($result_drop[$i] == true) {
- $net2ftp_output["rotateLogs"][] = __("The oldest log table was dropped successfully.");
- }
- else {
- $toreturn = false;
- $net2ftp_output["rotateLogs"][] = __("The oldest log table could not be dropped.");
- }
- } // end for
- // Set the log status to indicate this step is in done and the rotation is over
- putLogStatus(0);
- if ($net2ftp_result["success"] == false) { return false; }
- }
- return $toreturn;
- } // end rotateLogs()
- // ** **
- // ** **
- // **************************************************************************************
- // **************************************************************************************
- ?>
|