'.widget::button_href("Retour","?action=restore&PHPSESSID=".$_REQUEST['PHPSESSID']); if ( ! isset($_REQUEST['t'])) { echo '
'; echo ("Vous devez préciser s'il s'agit d'un modèle ou d'un dossier"); echo $retour; echo '
'; exit(); } if ( empty ($_FILES['file']['name']) || strlen(trim($_FILES['file']['name']))==0 ) { echo '
'; echo ("Vous devez donner un fichier "); echo $retour; echo '
'; exit(); } //--------------------------------------------------------------------------- // Restore a folder (dossier) if ( $_REQUEST['t']=='d') { ini_set('upload_max_filesize','5M'); echo '
'; $cn=DbConnect(); $id=NextSequence($cn,'dossier_id'); if ( strlen(trim($_REQUEST['database'])) == 0 ) $lname=$id." Restauration :".FormatString($_FILES['file']['name']); else $lname=$id." ".$_REQUEST['database']; $sql="insert into ac_dossier (dos_id,dos_name) values (".$id.",'".$lname."') "; StartSql($cn); try{ getDbValue($cn,$sql); } catch ( Exception $e) { echo ''."Echec de la restauration ".''; print_r($e); Rollback($cn); exit(); } Commit($cn); $name=domaine."dossier".$id; echo $name; ExecSql($cn,"create database ".$name." encoding='utf8'"); $args=" -d $name ".$_FILES['file']['tmp_name']; $status=passthru(PG_RESTORE.$args); echo '

Restauration réussie du dossier '.$lname.'

'; $new_cn=DbConnect($id); apply_patch($new_cn,$name,0); echo ''.'Ne pas recharger la page, sinon votre base de données sera restaurée une fois de plus'.''; echo $retour; echo '
'; } //--------------------------------------------------------------------------- // Restore a modele if ( $_REQUEST['t']=='m') { ini_set('upload_max_filesize','5M'); echo '
'; $cn=DbConnect(); $id=NextSequence($cn,'s_modid'); if ( strlen(trim($_REQUEST['database'])) == 0 ) $lname=$id." Restauration :".FormatString($_FILES['file']['name']); else $lname=$id." ".$_REQUEST['database']; $sql="insert into modeledef (mod_id,mod_name) values (".$id.",'Restauration".$lname."') "; StartSql($cn); try{ getDbValue($cn,$sql); } catch ( Exception $e) { echo ''."Echec de la restauration ".''; print_r($e); Rollback($cn); exit(); } Commit($cn); $name=domaine."mod".$id; ExecSql($cn,"create database ".$name." encoding='utf8'"); $args=" -d $name ".$_FILES['file']['tmp_name']; $status=exec(PG_RESTORE.$args); echo '

Restauration réussie du modèle '.$lname.'

'; $new_cn=DbConnect($id,'mod'); apply_patch($new_cn,$name,0); echo ''.'Ne pas recharger la page, sinon votre base de données sera restaurée une fois de plus'.''; echo $retour; echo '
'; } } else { echo '
'; ini_set('upload_max_filesize','5M'); echo '
'; echo widget::hidden('action','restore'); echo widget::hidden('sa','r'); echo ''; echo ''; $wNom=new widget("text"); $wNom->name="database"; $wNom->size=12; echo ''; echo ''; $chk=new widget("radio"); $chk->name="t"; $chk->value="d"; echo ''; echo ''; $chk->name="t"; $chk->value="m"; echo ''; echo ''; $file=new widget("file"); $file->name="file"; $file->value="mod"; $file->label="Fichier"; $file->table=1; echo $file->IOValue(); echo ''; echo '
'."Nom de la base de donnée".''.$wNom->IOValue().'
'."Type de backup :".''.$chk->IOValue()."Dossier".'
'.$chk->IOValue()."Modele".'
'; echo widget::submit("","Restauration"); echo '
'; echo '
'; }