e il ripristino di questo da una copia di backup.
A causa di un bug la funzionalità di ripristino del Database da una copia salvata localmente sul proprio PC non funziona.
Il bug è localizzato in questo frammento di codice del file catalog/admin/backup.php (riga 195 circa in una versione pulita):
Codice: Seleziona tutto
$sql_file = new upload('sql_file');
if ($sql_file->parse() == true) {
$restore_query = fread(fopen($sql_file->tmp_filename, 'r'), filesize($sql_file->tmp_filename));
$read_from = $sql_file->filename;
}
}
if (isset($restore_query)) {
settare la destinazione del file uppato mediante il metodo set_destination(). Se questo non viene fatto,
il metodo parse restituisce false in ogni caso.
Come si vede dal codice, questo causa il mancato assegnamento alla variabile $restore_query
e la conseguente mancata esecuzione del processo di ripristino.
Il problema si risolve settando una destinazione per il file uppato (fittizia perchè il file non viene poi effetivamente salvato in tale destinazione, ma rimane nella directory temp per i files uppati).
Ad es:
Codice: Seleziona tutto
$sql_file ->set_destination(DIR_FS_BACKUP);
Codice: Seleziona tutto
$sql_file = new upload('sql_file');
$sql_file ->set_destination(DIR_FS_BACKUP);
if ($sql_file->parse() == true) {
$restore_query = fread(fopen($sql_file->tmp_filename, 'r'), filesize($sql_file->tmp_filename));
$read_from = $sql_file->filename;
}
}
if (isset($restore_query)) {
Marcus
-------------------------------------------------------
http://www.oscommercedev.com