0,0 → 1,145 |
<?php |
|
if (!defined('IBLEGAL')) die('Kann nicht ohne Personal WebBase ausgeführt werden.'); |
|
if ($aktion == 'dest') |
{ |
if (isset($pwd) && ($pwd != $ib_user_passwort) && ($ib_user_type == 1)) |
die($header.'<h1>Datenübertragung</h1>Es wurde ein falsches Passwort eingegeben.'.$footer); |
|
if (strtoupper($sic) != 'OK') |
die($header.'<h1>Datenübertragung</h1>Sie müssen das Sicherheitsfeld ausfüllen!'.$footer); |
|
foreach ($tabellen as $m1 => $m2) |
{ |
if (isset($datenbanktabellen[$mysql_zugangsdaten['praefix'].$m2]['user'])) |
{ |
db_query("DELETE FROM `".$mysql_zugangsdaten['praefix'].$m2."` WHERE `user` = '".$benutzer['id']."'"); |
if (db_affected_rows() > 0) |
db_query("OPTIMIZE TABLE `".$mysql_zugangsdaten['praefix'].$m2."`"); |
} |
} |
|
unset($m1); |
unset($m2); |
|
echo $header.'<h1>Datenübertragung</h1>Es wurden alle Datensätze entfernt.'.$footer; |
} |
|
if ($aktion == 'dump') |
{ |
if (isset($pwd) && ($pwd != $ib_user_passwort) && ($ib_user_type == 1)) |
{ |
echo $header.'<h1>Datenübertragung</h1>Es wurde ein falsches Passwort eingegeben.'.$footer; |
} |
else |
{ |
if($_FILES['dfile']['tmp_name']) |
{ |
ob_start(); |
readfile($_FILES['dfile']['tmp_name']); |
$inh = ob_get_contents(); |
ob_end_clean(); |
|
$m = ''; |
|
// Größten Datensatz finden, um Dateiduplikate zu verhindern |
$max = 0; |
foreach ($tabellen as $m1 => $m2) |
{ |
$rs = db_query("SELECT MAX(`id`) AS `ma` FROM `".$mysql_zugangsdaten['praefix'].db_escape($m2)."`"); |
$rw = db_fetch($rs); |
if ($rw['ma'] > $max) |
$max = $rw['ma']; |
} |
|
unset($m1); |
unset($m2); |
|
$warn = ''; |
$firstds = true; |
$falsche_rev = false; |
$aktionzeile = 1; |
$inh = str_replace("\r", '', $inh); |
$inh = str_replace("\n", '', $inh); |
$ar1 = explode(";", $inh); |
foreach ($ar1 as $a11 => $a12) |
{ |
if ($firstds) |
{ |
$firstds = false; |
if ($a12 != 'IRONBASE#1') |
{ |
$falsche_rev = true; |
$warn .= '<b>Schwerer Fehler:</b><br><br>Dies ist keine gültige Personal WebBase-Datensicherung. Das Kopfzeilenelement "IRONBASE#1" wurde nicht gefunden.'; |
} |
} |
else if ((!$falsche_rev) && ($a12 != '')) |
{ |
$aktionzeile++; |
$namen = ''; |
$werte = ''; |
$ar2 = explode('*', $a12); |
$t = $ar2[0]; |
$d = $ar2[1]; |
$temp = $tabellen; |
@array_flip($temp); |
if (!array_key_exists($t, $temp)) |
{ |
$ar3 = explode(',', $d); |
foreach ($ar3 as $a31 => $a32) |
{ |
$ar4 = explode('~', $a32); |
$neu_namen = "`".db_escape(base64_decode($ar4[0]))."`, "; |
if (base64_decode($ar4[0]) == 'id') |
{ |
$neu_werte = "'".db_escape(base64_decode($ar4[1])+$max)."', "; |
} |
else |
{ |
if ((base64_decode($ar4[0]) == 'folder') && (base64_decode($ar4[1]) != 0)) |
$neu_werte = "'".db_escape(base64_decode($ar4[1])+$max)."', "; |
else |
$neu_werte = "'".db_escape(base64_decode($ar4[1]))."', "; |
} |
|
// Benutzerfeld darf nicht vom Datensatz aus hervorgehen! |
if ($ar4[0] == 'user') |
{ |
$warn .= 'Schutzverletzung des Typs B beim Versuch, den Benutzer bei folgender Stelle zu setzen:<br><code>Backup-Zeile: #'.$aktionzeile.'</code><br><br>'; |
} |
else |
{ |
$namen .= $neu_namen; |
$werte .= $neu_werte; |
} |
} |
} |
else |
{ |
$warn .= 'Schutzverletzung des Typs A beim Versuch, Daten in folgende nichtexistente Tabelle einzufügen:<br><code>'.my_htmlentities(base64_decode($t)).'</code><br><br>'; |
} |
$sql = "INSERT INTO `".$mysql_zugangsdaten['praefix'].base64_decode($t)."` ($namen`user`) VALUES ($werte'".$benutzer['id']."')"; |
// Debug: echo my_htmlentities($sql).'<br><br>'; |
if (!db_query($sql)) |
$warn .= 'Fehler beim Ausführen des Befehls:<br><code>'.my_htmlentities($sql).'</code><br>MySQL gab folgende Fehlermeldung aus:<br><code>'.mysql_error().'</code><br><br>'; |
} |
} |
$m = $warn; |
|
echo $header; |
echo '<h1>Datenübertragung</h1>'; |
if ($m != '') |
echo '<b>Bei der Datenübertragung sind einige Fehler aufgetreten. Sie sind hier aufgelistet.</b><br><br>'.$m; |
else |
echo '<b>Die Datenübertragung wurde erfolgreich beendet!</b>'; |
echo $footer; |
} |
else |
{ |
echo "$headerBitte geben Sie eine Datei an!$footer"; |
} |
} |
} |
|
?> |