<?php
// Feel free to translate this file in your own language
// then back the localized example to my email address
// avalaible on my website - www.lashampoo.net
$action=$_REQUEST['action'];
$file=$_REQUEST['file'];
$all=$_REQUEST['all'];
if(is_array($_REQUEST['table']))
$tables='`'.join('` `',$_REQUEST['table']).'`';
$tables=DeQuote($tables);
$file=DeQuote($file);
$all=DeQuote($all);
if($tables==$all)$tables='';
function Quote($texte) { return str_replace('"','"e;',$texte); }
function DeQuote($texte) { return str_replace('"e;','"',$texte); }
require('inc.dbbackup.php'); // Instantiation of dbBackup class
// Execute action
if($action=='retrieve' && $file) $r=$dbBackup->retrieve($file);
elseif($action=='delete' && $file) $r=$dbBackup->delete($file);
elseif($action=='restore' && $file) $r=$dbBackup->restore($file);
elseif($action=='fromlast') $r=$dbBackup->fromlast();
elseif($action=='dump') $r=$dbBackup->dump($tables);
elseif($action=='dumpifneeded') $r=$dbBackup->dumpifneeded($tables);
// Explication des erreurs ou résultats
if($action=='retrieve' && $r) $error="Backup file doesn't seem to exist or be readable";
elseif($action=='delete' && $r) $error="Couldn't delete backup file";
elseif($action=='delete') $error="Backup file deleted";
elseif($action=='restore' && $r) $error="Backup file doesn't seem to exist or be readable";
elseif($action=='restore') $error="Database restored from backup file";
elseif($action=='fromlast' && $r=='none') $error="Backup directory seems to be empty, no last backup";
elseif($action=='fromlast' && $r) $error="Backup directory seems not to be readable or not to exist";
elseif($action=='fromlast') $error="Database restored from last backup file";
elseif($action=='dumpifneeded' && $r=='error') $error="Impossible to create backup file";
elseif($action=='dumpifneeded' && $r=='not needed') $error="No backup needed";
elseif($action=='dumpifneeded' && !$r) $error="Impossible to create backup file";
elseif($action=='dumpifneeded' && $r) $error="Backup file created";
elseif($action=='dump' && !$r) $error="Impossible to deleted backup file";
elseif($action=='dump') $error="Backup file created";
list($files,$dates)=$dbBackup->listbackups(); // Retrieve backups list
?><html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1252">
<title>dbBackup</title>
<style type="text/css" media="All"><!--
body,select,input {
font-size: 12px;
background-color: #FFFFFF;
font-family: verdana, helvetica, arial;
margin: 5px; padding: 5px; }
-->
</style>
<script language="JavaScript">
<!--
var ok=false;
function test(ok) {
var n = document.backup;
var action=n.elements[0].value;
var file=n.elements[1].value;
file='.'+file.substring(file.indexOf('.[')+2,file.indexOf('].'))+'.';
var all=file.indexOf('..all-tables..');
if(ok=='files') for (var i = 0; i < n.elements.length; i++) {
if(n.elements[i].type=='checkbox') {
if (file.indexOf('.'+n.elements[i].value+'.')>=0 || all>=0)
n.elements[i].checked=true;
else n.elements[i].checked=false;
}
}
if(action=='dump') action='backup the database';
if(action=='dumpifneeded') action='sauvegarder la base de données si nécessaire';
if(action=='restore') action='restore database from backup file';
if(action=='fromlast') action='restore database from last backup';
if(action=='delete') action='delete the backup file';
if(action=='retrieve') action='download the backup file';
if(n.elements[0].value!='dump'
&& n.elements[0].value!='fromlast'
&& n.elements[0].value!='dumpifneeded'
&& n.elements[0].value !=''
&& n.elements[1].value == ''
&& ok==true)
{ alert('You must select a backup file'); return false; }
else if(n.elements[0].value == ''
&& n.elements[1].value != ''
&& ok==true) {
alert('You must select an action to perform');
return false;
}
else if( n.elements[0].value=='dump'
|| n.elements[0].value=='fromlast'
|| n.elements[0].value=='dumpifneeded'
|| (n.elements[0].value !=''
&& n.elements[1].value != '')) {
if(confirm('Confirm '+action+' ?'))
if(confirm('Really sur you want to '+action+' ?')) n.submit();
else return false;
else return false;
} else return false;
}
//-->
</script>
</head><body><center>
<h1>dbBackup</h1>
<form action="./example_english.php" name="backup" method="GET" onSubmit="return test('end');">
<?php if($error) { ?><b><?=$error?></b><br><br><?php } ?>
<?php if($files==false) { ?>
<b>The backup folder doesn't seem to exist and/or to be writable by Apache</b><br>
Please check the configuration settings in inc.dbbackup.php<br><br><?php } ?>
<select name="action" onchange="if(this.value!='')test('action');">
<option value=""></option>
<option value="dump">Backup database</option>
<?php if($files!='none') { ?>
<option value="dumpifneeded">Backup database if needed</option>
<option value="restore">Restore from backup file:</option>
<option value="fromlast">Restore from last backup</option>
<option value="delete">Delete backup file:</option>
<option value="retrieve">Download backup file:</option>
</select>
<select name="file" onchange="if(this.value!='')test('files');">
<option value=""></option>
<?php foreach ($files AS $file) {
$name=ereg_replace("^.*\.\[(.*)\]\..*$",'\1',$file);
$name=ereg_replace(".all-tables.","base complête",$name);
if(substr_count($name,'.')>=1)$name=(substr_count($name,'.')+1)." tables";
elseif($name!="base complête")$name="only 1 table";
echo "<option value=\"".Quote($file)."\">".
date('\d\u d/m/Y à H\hi, ',array_pop($dates)).$name."</option>\n";
}} ?>
</select><input type="submit" value="ok"><br>
<?php $tables=$dbBackup->listtables();
if($tables) foreach($tables AS $table) { ?>
<input type="checkbox" name="table[]" value="<?=Quote($table)?>" checked><?=$table?>
<?php } else { ?>
No table to select, this databse seems empty.
<?php } ?>
<input type="hidden" name="all" value="<?='`'.Quote(join('` `',$tables)).'`'?>"></form>
</center></body></html>
|