Mir ist gerade noch etwas anderes aufgefallen.
Heute Nacht am 1.3.2014 wurde die Statistiken (Webtraffic, Mailtraffic) aktualisiert. Monatswechsel vom 28.2. zum 1.3.
Für den Webtraffic funktioniert das einwandfrei, da hier in der Tabelle "web_traffic" jeder einzelne Tag enthalten ist. Im Interface werden dann für den Aufbau der Liste die einzelnen Werte (z.B. aktueller Monat, vergangener Monat) die jeweiligen Werte addiert.
interface/web/sites/web_sites_stats.php
Beim Mailtraffic ist das jedoch nicht so. Hier stehen in der Tabelle "mail_traffic" nur die bereits addierten Monatswerte (keine Tagesangaben), die dann im Interface ausgelesen werden
interface/web/mail/mail_user_stats.php
In der "cron_daily.php" wird offensichtlich date('Y-m') benutzt, um die Daten zu aktualisieren. Damit steht der Timestamp während der Ausführung des Scripts (00:30 Uhr) bei einem Monatswechsel aber bereits auf den nächsten Tag. Der letzte Tag des Monats wird also in der Tabelle "mail_traffic" als Wert für den nächsten Monat eingetragen und im Interface daher auch falsch dargestellt.
Heute Nacht am 1.3.2014 wurde die Statistiken (Webtraffic, Mailtraffic) aktualisiert. Monatswechsel vom 28.2. zum 1.3.
Für den Webtraffic funktioniert das einwandfrei, da hier in der Tabelle "web_traffic" jeder einzelne Tag enthalten ist. Im Interface werden dann für den Aufbau der Liste die einzelnen Werte (z.B. aktueller Monat, vergangener Monat) die jeweiligen Werte addiert.
interface/web/sites/web_sites_stats.php
PHP:
//** Traffic of the current month
$tmp_year = date('Y');
$tmp_month = date('m');
$tmp_rec = $app->db->queryOneRecord("SELECT SUM(traffic_bytes) as t FROM web_traffic WHERE hostname = '".$app->db->quote($rec['domain'])."' AND YEAR(traffic_date) = '$tmp_year' AND MONTH(traffic_date) = '$tmp_month'");
//** Traffic of the current year
$tmp_rec = $app->db->queryOneRecord("SELECT sum(traffic_bytes) as t FROM web_traffic WHERE hostname = '".$app->db->quote($rec['domain'])."' AND YEAR(traffic_date) = '$tmp_year'");
Beim Mailtraffic ist das jedoch nicht so. Hier stehen in der Tabelle "mail_traffic" nur die bereits addierten Monatswerte (keine Tagesangaben), die dann im Interface ausgelesen werden
interface/web/mail/mail_user_stats.php
PHP:
//** Traffic of the current month
$tmp_date = date('Y-m');
$tmp_rec = $app->db->queryOneRecord("SELECT traffic as t FROM mail_traffic WHERE mailuser_id = ".$app->functions->intval($rec['mailuser_id'])." AND month = '$tmp_date'");
//** Traffic of the current year
$tmp_date = date('Y');
$tmp_rec = $app->db->queryOneRecord("SELECT sum(traffic) as t FROM mail_traffic WHERE mailuser_id = ".$app->functions->intval($rec['mailuser_id'])." AND month like '$tmp_date%'");
In der "cron_daily.php" wird offensichtlich date('Y-m') benutzt, um die Daten zu aktualisieren. Damit steht der Timestamp während der Ausführung des Scripts (00:30 Uhr) bei einem Monatswechsel aber bereits auf den nächsten Tag. Der letzte Tag des Monats wird also in der Tabelle "mail_traffic" als Wert für den nächsten Monat eingetragen und im Interface daher auch falsch dargestellt.