/cmsadmin/backup/maintain_backups.php

https://github.com/rhempen/cms · PHP · 135 lines · 105 code · 12 blank · 18 comment · 27 complexity · 15864f68917f2dead120cab40038d3b1 MD5 · raw file

  1. <?php
  2. // ev. GET-Parameter abholden
  3. $act = isset($_GET['act']) ? strtolower($_GET['act']) : '';
  4. $file = isset($_GET['file']) ? $_GET['file'] : '';
  5. /* Das Backupverzeichnis nach Backups durchsuchen */
  6. function read_backups() {
  7. $backupdir = preg_replace('/\/\//','/',BACKUPDIR); /* "//" durch "/" ersetzen */
  8. $file = '';
  9. echo 'Backupdir: ' . $backupdir . '<br />';
  10. if (!file_exists($backupdir)) {
  11. echo '<p class="error">'.sprintf($GLOBALS['BACKUP']['VERZEICHNIS_EXISTIERT_NICHT'], $backupdir).'</p>';
  12. exit();
  13. }
  14. // dann wird das Verzeichnis ge�ffnet und durchsucht
  15. $handle = opendir($backupdir);
  16. while (false !== ($file = readdir($handle)))
  17. {
  18. if ($file != '.' && $file != '..') {
  19. $srcfile = BACKUPDIR . $file;
  20. if (is_file($srcfile)) {
  21. // p=0 -> absoluter Dateiname p=1 -> Dateiname allein
  22. $sf['datei'] = $file;
  23. // Statistische Daten zur Datei lesen
  24. $sst = stat($srcfile);
  25. // last modified
  26. $fmt = filemtime($srcfile);
  27. $sf['fmt'] = $fmt;
  28. // die Filesize in Kb umgerechnet
  29. $fsz = $sst['size'];
  30. $sf['fsz'] = round($fsz / 1024);
  31. }
  32. // Array f�llen
  33. $fs[] = $sf;
  34. // Variable l�schen
  35. unset($sf);
  36. }
  37. }
  38. if (count($fs) > 0) { rsort($fs); }
  39. return $fs;
  40. }
  41. /* Ein Backupfile loeschen */
  42. function delete_backupfile($file) {
  43. $backupfile = BACKUPDIR . $file;
  44. if (file_exists($backupfile)) {
  45. if (unlink($backupfile)) {
  46. $meldung = '<p class="success">'.sprintf($GLOBALS['MESSAGES']['MSG_DATEI_GELOESCHT'], $file).'</p>';
  47. }
  48. else {
  49. $meldung= '<p class="error">'.sprintf($GLOBALS['MESSAGES']['MSG_DATEI_NICHT_GELOESCHT'], $file).'</p>';
  50. }
  51. return $meldung;
  52. }
  53. }
  54. /* Formatieren von Datum und Zeit */
  55. function set_date_time($mtime) {
  56. // echo date(I);
  57. /* hier wird die Berechnung der Zeit korrigiert */
  58. if (date('I') == 1) { // Sommerzeit
  59. if (date('I', $mtime) == 1) { // Sommerzeit
  60. $mtime -= 3600;
  61. } else {
  62. $mtime += 3600;
  63. }
  64. } else { // Winterzeit
  65. if (date('I', $mtime) == 0) { // Winterzeit
  66. $mtime += 3600;
  67. } else {
  68. $mtime -= 3600;
  69. }
  70. }
  71. return gmdate('d.m.Y H:i', $mtime);
  72. }
  73. ?>
  74. <div id="backups">
  75. <p>
  76. <?php
  77. // Ein Backupfile l�schen
  78. if ($act == 'delete' && $file != '')
  79. {
  80. $meldung = delete_backupfile($file);
  81. echo $meldung;
  82. }
  83. // vorhandene Backupfiles lesen und ausgeben
  84. $fs = read_backups();
  85. if (is_array($fs))
  86. {
  87. ?>
  88. <table cellpadding="5" cellspacing="1" border="0" width="80%">
  89. <tr class="navi_overview_titel">
  90. <th width="30%"><?php echo $GLOBALS['BACKUP']['DATEI'];?></th>
  91. <th width="30%"><?php echo $GLOBALS['BACKUP']['ERSTELLT'];?></th>
  92. <th width="20%"><?php echo $GLOBALS['BACKUP']['DATEIGROESSE'];?></th>
  93. <th width="10%">&nbsp;</th>
  94. <th width="10%">&nbsp;</th>
  95. </tr>
  96. <?php
  97. foreach($fs as $index => $file) {
  98. // Klasse, File mit Pfad, Extension
  99. $class = $index % 2 == 0 ? 'even' : 'odd';
  100. // $srcfile = BACKUPDIR . $file['datei'];
  101. $srcfile = 'backups/'.$file['datei'];
  102. // $ext = txt oder sql
  103. $ext = strrchr($file['datei'], '.');
  104. $icon_dwl = '<img src="../gifs/download.png" alt="'.$GLOBALS['TEXTE']['DOWNLOAD'].'" title="'.$GLOBALS['TEXTE']['DOWNLOAD'].'" />';
  105. $icon_lup = '<img src="../gifs/view_16.png" alt="'.$GLOBALS['TEXTE']['TEXT_SHOW'].'" title="'.$GLOBALS['TEXTE']['TEXT_SHOW'].'" />';
  106. $icon = $ext == '.sql' ? $icon_dwl : $icon_lup;
  107. $jscript = "return confirm('".$GLOBALS['TEXTE']['TEXT_CONFIRM_DELETE_FILE']."');";
  108. ?>
  109. <tr class="<?php echo $class;?>">
  110. <td><?php echo $file['datei']; ?></td>
  111. <td align="right"><?php echo set_date_time($file['fmt']); ?></td>
  112. <td align="right"><?php echo $file['fsz']; ?></td>
  113. <td align="center"><?php echo '<a href="'.$srcfile.'">'.$icon.'</a>'; ?></td>
  114. <td align="center"><?php echo '<a href="'.$_SERVER['PHP_SELF'].'?act=delete&file='.$file['datei'].'"><img src="../gifs/delete.gif" alt="delete" title="delete" onclick="'.$jscript.'"' ?></td>
  115. </tr>
  116. <?php
  117. }
  118. ?>
  119. </table>
  120. <?php
  121. }
  122. ?>
  123. </div>