diff --git a/system/system_check_sql.php b/system/system_check_sql.php new file mode 100644 index 000000000..423d81d97 --- /dev/null +++ b/system/system_check_sql.php @@ -0,0 +1,149 @@ + + */ + +/* + * Dieses Skript durchläuft alle Dateien vom Typ .sql im Ordner system/sql. + * Wenn von diesen SQLs Datensätze retourniert werden 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 .= '
| '.$key.' | '; + continue; + } + $mailcontent .= '
|---|
| '.($column === 'f' ? 'false' : ($column === 't' ? 'true' : $column)).' | '; + } + $mailcontent .= '