*/ /* * Dieses Skript durchläuft alle Dateien vom Typ .sql im Ordner system/sql. * Wenn von diesen SQLs Datensätze retourniert werden (die nicht NULL sind) oder Fehler auftreten, werden diese in ein Mail gepackt und an MAIL_ADMIN geschickt. */ require_once('../config/global.config.inc.php'); require_once('../config/vilesci.config.inc.php'); require_once('../include/functions.inc.php'); require_once('../include/benutzerberechtigung.class.php'); require_once('../include/mail.class.php'); // Datenbankverbindung herstellen if (! $db = new basis_db ()) die ( 'Es konnte keine Verbindung zum Server aufgebaut werden.' ); $slq_import_path = DOC_ROOT.'system/sql'; $mailcontent = ''; $mailheader = ' '; // Wenn das Script ueber die Kommandozeile aufgerufen wird, erfolgt keine Authentifizierung if (php_sapi_name() != 'cli') { $uid = get_uid(); $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($uid); if(!$rechte->isBerechtigt('admin')) { exit($rechte->errormsg); } } $files = glob($slq_import_path.'/*.sql'); $filename = ''; $db_row = ''; if (($files = glob($slq_import_path.'/*.sql')) != false) { foreach ($files as $file) { $filename = (basename($file)); $sql = file_get_contents($file); // Checken, ob letztes Zeichen ; ist, wenn nicht, hinzufügen if (substr($sql, -1, 1) != ';') $sql = $sql .= '; '; // Wenn Fehler auftritt, diesen ins Mail schreiben if (! @$result = $db->db_query ($sql)) { $mailcontent .= '

Die Abfrage der Datei "'.$filename.'" hat folgenden Fehler geliefert:

'; $mailcontent .= ''.$db->db_last_error () . '
'; $mailcontent .= '
'.$sql.'

'; continue; } // Wenn mehr als eine row vom SQL zurückkommen und diese nicht NULL ist, diese ins Mail schreiben if ($db->db_num_rows($result) > 1 || ($db->db_num_rows($result) == 1 && $db->db_fetch_row($result)[0] != '')) { $mailcontent .= '

Die Abfrage der Datei "'.$filename.'" hat folgendes Ergebnis geliefert:

'; // Wenn zu viele Datensätze retourniert werden, abbrechen und Meldung ausgeben if ($db->db_num_rows($result) > 1000) $mailcontent .= 'ACHTUNG! Es wurden mehr als 1000 Datensätze zurückgegeben
'; $mailcontent .= ''; $array = array(); $result = $db->db_query ($sql); $object = $db->db_fetch_object($result); $row_array = get_object_vars($object); foreach($row_array AS $key => $value) { $mailcontent .= ''; } $mailcontent .= ''; $counter = 0; // Wenn mehr als 1000 Datensätze retourniert werden, abbrechen $result = $db->db_query ($sql); while($row = $db->db_fetch_object($result)) { if ($counter == 1000) break; $mailcontent .= ''; foreach ($row AS $column) { $mailcontent .= ''; } $mailcontent .= ''; $counter++; } $mailcontent .= '
'.$key.'
'.($column === 'f' ? 'false' : ($column === 't' ? 'true' : $column)).'
'; } } } else $mailcontent = ''; // Wenn Mailcontent nicht leer ist, Mail senden if ($mailcontent != '') { $mailcontent = $mailheader.$mailcontent; echo $mailcontent; $mail = new mail(MAIL_ADMIN, 'no-reply', 'Fehler in System Check "addons/bewerbung/cronjobs/system_check.php"', 'Bitte sehen Sie sich die Nachricht in HTML Sicht an, um den Inhalt vollständig darzustellen.'); $mail->setHTMLContent($mailcontent); $mail->send(); } else echo 'Es sind keine Fehler aufgetreten';