[BUGREPORT] Mancato ripristino Database da backup locale
Inviato: 05/05/2005, 2:40
Nel pannello di controllo di osCommerce sono presenti alcune funzionalità per il backup del Database
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):
Per come è stata scritta la classe upload, dopo aver istanziato un oggetto upload, è necessario
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:
Il codice sopra diventa:
Con questa modifica il processo di ripristino da un backup locale, viene eseguito correttamente.
Marcus
-------------------------------------------------------
http://www.oscommercedev.com
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