Example #1
0
function restore_dump($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASSWORD, $MYSQL_DB_NAME, $MYSQL_CHARSET)
{
    // Try via command-line mysql first
    $err_code = 127;
    $path = dirname(__FILE__) . DIRECTORY_SEPARATOR;
    $exec_str = "mysql --host=" . escapeshellarg($MYSQL_HOST) . " --user="******" --password="******" --default-character-set={$MYSQL_CHARSET} " : "") . "  " . escapeshellarg($MYSQL_DB_NAME) . " < {$path}netcat.sql 2>&1";
    exec($exec_str, $output, $err_code);
    if ($err_code) {
        $mysql_dump = new MYSQL_DUMP($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASSWORD, $MYSQL_CHARSET);
        $mysql_dump->dumpDB($MYSQL_DB_NAME);
        if ($mysql_dump->restoreDB("{$path}netcat.sql") == false) {
            echo "Failed to import MySQL dump:<br />\n";
            echo $mysql_dump->error();
            echo "Cmdline output: \n<br />\n";
            foreach ($output as $l) {
                echo $l . "\n<br />";
            }
            echo "\n<br />\n";
            return false;
        }
    }
    return true;
}
Example #2
0
 // increase memory limit
 ini_set('memory_limit', '64M');
 $backup_dir = USERS_DIR . 'backup/';
 if (!is_dir($backup_dir)) {
     mkdir($backup_dir);
 }
 // json encode settings
 global $DB, $SETTINGS, $PLUGINS;
 $settings = array('SETTINGS' => $SETTINGS);
 if ($type == 'all') {
     $settings['PLUGINS'] = $PLUGINS;
 }
 $settings = json_encode($settings);
 // backup database
 $dump = new MYSQL_DUMP($DB['host'], $DB['user'], $DB['pass']);
 $sql = $dump->dumpDB($DB['name']);
 // backup files
 $zip = new zipfile();
 $files = scandir($dir);
 function zip_files($files, $dir = '', $zdir = '', $zip)
 {
     foreach ($files as $file) {
         if ($file == '.' || $file == '..' || $file == 'backup') {
             continue;
         }
         if (is_dir($dir . $file)) {
             $zip->addDir($zdir . $file);
             zip_files(scandir($dir . $file), $dir . $file . '/', $zdir . $file . '/', $zip);
         } else {
             $zip->addFile(file_get_contents($dir . $file), $zdir . $file);
         }
    $error = new Error("Setup directory exists. You either haven't installed your guestbook, or forgot to delete the setup folder.");
    die($error->showError());
}
if (!file_exists("../../../data.php")) {
    $error = new Error("Data file doesn't exist. Have you installed your guestbook yet?");
    die($error->showError());
}
require_once '../iden.php';
if (@$magicBackup != "0xNOWALLEALLOWED") {
    die("This file cannot be executed directly");
}
unset($magicBackup);
include_once '../../../classes/database/mysql_dump.inc.php';
$mysql_dump = new MYSQL_DUMP(base64_decode($data['dbHost']), base64_decode($data['dbUsername']), base64_decode($data['dbPassword']));
$data['dbDatabaseDecoded'] = base64_decode($data['dbDatabase']);
$sql1 = $mysql_dump->dumpDB($data['dbDatabaseDecoded'], $dbTables['config'], HAR_ALL_OPTIONS);
$sql2 = $mysql_dump->dumpDB($data['dbDatabaseDecoded'], $dbTables['admin'], HAR_ALL_OPTIONS);
$sql3 = $mysql_dump->dumpDB($data['dbDatabaseDecoded'], $dbTables['posts'], HAR_ALL_OPTIONS);
$sql4 = $mysql_dump->dumpDB($data['dbDatabaseDecoded'], $dbTables['ip'], HAR_ALL_OPTIONS);
$sql5 = $mysql_dump->dumpDB($data['dbDatabaseDecoded'], $dbTables['censored'], HAR_ALL_OPTIONS);
$sql6 = $mysql_dump->dumpDB($data['dbDatabaseDecoded'], $dbTables['smilies'], HAR_ALL_OPTIONS);
$sql7 = $mysql_dump->dumpDB($data['dbDatabaseDecoded'], $dbTables['trash'], HAR_ALL_OPTIONS);
$sql8 = $mysql_dump->dumpDB($data['dbDatabaseDecoded'], $dbTables['reply'], HAR_ALL_OPTIONS);
$sql9 = $mysql_dump->dumpDB($data['dbDatabaseDecoded'], $dbTables['backupLog'], HAR_ALL_OPTIONS);
unset($data['dbDatabaseDecoded']);
$sql = $sql1 . $sql2 . $sql3 . $sql4 . $sql5 . $sql6 . $sql7 . $sql8 . $sql9;
$sql_file = "angora_" . time() . ".sql";
$mysql_dump->download_sql($sql, $sql_file);
include_once '../../../classes/functions.php';
$queryMsg = "insert into " . $dbTables['backupLog'] . " (id, date, operation) values (NULL, '" . secureVar(time(), 'sql') . "', '" . secureVar('b', 'sql') . "');";
$con->modify($queryMsg);