$buffer = fread($fp, filesize(DIR_FS_BACKUP . $_GET['file'])); fclose($fp); header('Content-type: application/x-octet-stream'); header('Content-disposition: attachment; filename=' . $_GET['file']); echo $buffer; exit; } } else { $messageStack->add(ERROR_DOWNLOAD_LINK_NOT_ACCEPTABLE, 'error'); } break; case 'deleteconfirm': if (strstr($_GET['file'], '..')) { zen_redirect(zen_href_link(FILENAME_BACKUP_MYSQL)); } $zremove_error = zen_remove(DIR_FS_BACKUP . '/' . $_GET['file']); // backwards compatibility: if (isset($zen_remove_error) && $zen_remove_error == true) { $zremove_error = $zen_remove_error; } if (!$zremove_error) { $messageStack->add_session(SUCCESS_BACKUP_DELETED, 'success'); zen_redirect(zen_href_link(FILENAME_BACKUP_MYSQL)); } break; } } // check if the backup directory exists $dir_ok = false; if (is_dir(DIR_FS_BACKUP)) { if (is_writable(DIR_FS_BACKUP)) {
function zen_remove($source) { global $messageStack, $zen_remove_error; if (isset($zen_remove_error)) { $zen_remove_error = false; } if (is_dir($source)) { $dir = dir($source); while ($file = $dir->read()) { if ($file != '.' && $file != '..') { if (is_writeable($source . '/' . $file)) { zen_remove($source . '/' . $file); } else { $messageStack->add(sprintf(ERROR_FILE_NOT_REMOVEABLE, $source . '/' . $file), 'error'); $zen_remove_error = true; } } } $dir->close(); if (is_writeable($source)) { rmdir($source); zen_record_admin_activity('Removed directory from server: [' . $source . ']', 'notice'); } else { $messageStack->add(sprintf(ERROR_DIRECTORY_NOT_REMOVEABLE, $source), 'error'); $zen_remove_error = true; } } else { if (is_writeable($source)) { unlink($source); zen_record_admin_activity('Deleted file from server: [' . $source . ']', 'notice'); } else { $messageStack->add(sprintf(ERROR_FILE_NOT_REMOVEABLE, $source), 'error'); $zen_remove_error = true; } } }
$tables->MoveNext(); } $messageStack->add_session(SUCCESS_DB_OPTIMIZE . ' ' . $i, 'success'); $action = ''; zen_redirect(zen_href_link(FILENAME_STORE_MANAGER)); break; // clean out old DEBUG logfiles // clean out old DEBUG logfiles case 'clean_debug_files': $purgeFolder = rtrim(DIR_FS_SQL_CACHE, '/'); $dir = dir($purgeFolder); while ($file = $dir->read()) { if ($file != '.' && $file != '..' && substr($file, 0, 1) != '.') { if (preg_match('/^(myDEBUG-|AIM_Debug_|SIM_Debug_|FirstData_Debug_|Linkpoint_Debug_|Paypal|paypal|ipn_|zcInstall).*\\.log$/', $file)) { if (is_writeable($purgeFolder . '/' . $file)) { zen_remove($purgeFolder . '/' . $file); } } } } $dir->close(); unset($dir); $messageStack->add_session(SUCCESS_CLEAN_DEBUG_FILES, 'success'); zen_redirect(zen_href_link(FILENAME_STORE_MANAGER)); break; case 'update_all_master_categories_id': // reset products master categories ID $sql = "select products_id from " . TABLE_PRODUCTS; $check_products = $db->Execute($sql); while (!$check_products->EOF) { $sql = "select products_id, categories_id from " . TABLE_PRODUCTS_TO_CATEGORIES . " where products_id='" . $check_products->fields['products_id'] . "'";
function zen_remove($source) { global $messageStack, $zen_remove_error; if (isset($zen_remove_error)) { $zen_remove_error = false; } if (is_dir($source)) { $dir = dir($source); while ($file = $dir->read()) { if ($file != '.' && $file != '..') { if (is_writeable($source . '/' . $file)) { zen_remove($source . '/' . $file); } else { $messageStack->add(sprintf(ERROR_FILE_NOT_REMOVEABLE, $source . '/' . $file), 'error'); $zen_remove_error = true; } } } $dir->close(); if (is_writeable($source)) { rmdir($source); } else { $messageStack->add(sprintf(ERROR_DIRECTORY_NOT_REMOVEABLE, $source), 'error'); $zen_remove_error = true; } } else { if (is_writeable($source)) { unlink($source); } else { $messageStack->add(sprintf(ERROR_FILE_NOT_REMOVEABLE, $source), 'error'); $zen_remove_error = true; } } }
$buffer = fread($fp, filesize(DIR_FS_BACKUP . $_GET['file'])); fclose($fp); header('Content-type: application/x-octet-stream'); header('Content-disposition: attachment; filename=' . $_GET['file']); echo $buffer; exit; } } else { $messageStack->add(ERROR_DOWNLOAD_LINK_NOT_ACCEPTABLE, 'error'); } break; case 'deleteconfirm': if (strstr($_GET['file'], '..')) { zen_redirect(zen_href_link(FILENAME_BACKUP_MYSQL)); } zen_remove(DIR_FS_BACKUP . '/' . $_GET['file']); if (!$zen_remove_error) { $messageStack->add_session(SUCCESS_BACKUP_DELETED, 'success'); zen_redirect(zen_href_link(FILENAME_BACKUP_MYSQL)); } break; } } // check if the backup directory exists $dir_ok = false; if (is_dir(DIR_FS_BACKUP)) { if (is_writable(DIR_FS_BACKUP)) { $dir_ok = true; } else { $messageStack->add(ERROR_BACKUP_DIRECTORY_NOT_WRITEABLE, 'error'); }