amadeus
18/09/2006, 09h49
Suite à pas mal de demande, je post ici mon script de dump de base MySQL et de restauration.
ATTENTION : toujours mettre se script dans un répertoire avec un htaccess et une protection d'accès !
cf. ce tutorial
ATTENTION : toujours mettre se script dans un répertoire avec un htaccess et une protection d'accès !
cf. ce tutorial
Code PHP:
if($local)
$dirBin = 'C:\\PF\\mysql-4.0.22-win\\bin\\';
else
$dirBin = '';
$dbhost = '';
$dbuser = '';
$dbpass = '';
$dbbase = '';
$ltable = '';
$dumpFile = date('Y.m.d-H.i.s_') . $dbbase . '.sql';
$todo = $_GET['todo'];
if($todo == 'dump')
{
$cmd = $dirBin . 'mysqldump -h' . $dbhost . ' -u'.$dbuser . ' --password=' . $dbpass .
' --complete-insert --add-drop-table ' . $dbbase . ' ' . $ltable . ' > ' . $dumpFile;
exec($cmd);
}
if($todo == 'suppr')
{
unlink($_GET['file']);
}
if($todo == 'restaurer')
{
if (move_uploaded_file($_FILES['fichier']['tmp_name'], "./dumptmp.sql"))
{
$cmd = $dirBin . 'mysql -h' . $dbhost . ' -u'.$dbuser . ' --password=' . $dbpass .
' ' . $dbbase . ' < ./dumptmp.sql';
exec($cmd);
unlink("./dumptmp.sql");
}
else
{
print "Possible file upload attack! Here's some debugging info:\n";
var_dump($_FILES);
}
}
Code HTML:
Dump de la base : if($todo == 'dump') { ?>"=$dumpFile?>">Dump "?todo=suppr&file==$dumpFile?>">Suppr } else {?> "?todo=dump">go if($todo == 'suppr') { ?> ( Fichier supprimé ) } ?> } ?> Restauration : action="?todo=restaurer" method="POST"> "hidden" name="MAX_FILE_SIZE" value="10000000"> "fichier" type="file"> "submit" value="importer">