} } if ($s_restore['overwrite']) { $options |= IBASE_RES_REPLACE; } else { $options |= IBASE_RES_CREATE; } if (empty($error)) { $source_file = defined('BACKUP_DIR') && BACKUP_DIR !== '' ? BACKUP_DIR . $s_restore['source'] : $s_restore['source']; if ($s_restore['verbose']) { // remove pending backup-jobs from session $s_iframejobs = array_filter($s_iframejobs, create_function('$a', '$a["job"]!="restore";')); $iframekey_restore = md5(uniqid('restore')); $s_iframejobs[$iframekey_restore] = array('job' => 'restore', 'source' => $source_file, 'target' => $s_restore['target'], 'options' => $options, 'connect' => $s_restore['connect'], 'timestamp' => time()); } elseif (($service = fbird_service_attach($s_login['host'], $s_login['user'], $s_login['password'])) != FALSE) { fbird_restore($service, $source_file, $s_restore['target'], $options, $s_restore['verbose']); $message = 'restore started'; fbird_service_detach($service); } else { $ib_error = fbird_errmsg(); } } } } // print out all the panels // $s_page = 'Admin'; $panels = $s_admin_panels; require './inc/script_end.inc.php'; function get_backup_filename($pname) {
} else { $error = fbird_errmsg(); } break; case 'backup': if (($service = fbird_service_attach($s_login['host'], $s_login['user'], $s_login['password'])) != FALSE) { $content = fbird_backup($service, $job['source'], $job['target'], $job['options'], TRUE); $content = str_replace(array(chr(0x1) . chr(0xa), 'gbak: '), '', $content); fbird_service_detach($service); } else { $error = fbird_errmsg(); } break; case 'restore': if (($service = fbird_service_attach($s_login['host'], $s_login['user'], $s_login['password'])) != FALSE) { $content = fbird_restore($service, $job['source'], $job['target'], $job['options'], TRUE); $content = str_replace(array(chr(0x1) . chr(0xa), 'gbak: '), '', $content); fbird_service_detach($service); // try to connect the restored database if ($job['connect']) { $s_login['database'] = $job['target']; if (!empty($s_sysdba_pw)) { $s_login['user'] = '******'; $s_login['password'] = $s_sysdba_pw; } if ($dbhandle = db_connect()) { // connected successfully $s_connected = TRUE; remove_edit_panels(); } else { // connect failed