<?php
#=
/****************************************************************************
Copyright 2002, Daniel Deycard, Jacques Messines, Alain Pomirol
(CATICE Académie de Bordeaux)

This file is part of GiBii/Melia.

GiBii/Melia is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

GiBii/Melia is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with GiBii/Melia; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

****************************************************************************/
 
include("../include/vars_adm.php");
include("../include/util.inc.php");
include("../include/utiljs.php");
include("../include/scriptsql.php");


function choisir() {
$PHP_SELF=basename($_SERVER['PHP_SELF']);
print "<h2>ATTENTION : </h2><h3>... lisez TOUT !</h3>";
print "<ul type=\"circle\">\n";
print "<li>Il est très fermement <b>recommandé</b> d'effectuer un backup de votre base <b>actuelle</b> 
		avant d'essayer une restauration : si cette restauration échoue, vous n'aurez pas tout perdu !</li>\n";
print "<li>Il est aussi très fermement <b>conseillé</b> d'utiliser une restauration correspondant à votre 
		version de GiSCCo (même x.y dans votre version x.y.z)</li>\n";
print "<li>Si le point précédent n'est pas vérifié et si des champs ou tables ont été modifiés dans la base, 
		la restauration réussira mais des erreurs risquent apparaître ultérieurement. Il sera donc prudent de <b>repasser dans le
		répertoire sadmin/maj les fichiers que vous trouverez dans sadmin/maj_faites puis de relancer une session sadmin</b>, 
		comme vous le faites pour effectuer une mise à jour normale.</li>\n";
print "<li>Il est <b>sage</b> d'effectuer un backup après chaque version qui modifie la base (le <b>y</b> dans <b>x.y.z</b>).</li>\n";
print "</ul>\n";

print "<p>&nbsp</p>";
print "<FORM method=\"post\" action=\"$PHP_SELF\" enctype=\"multipart/form-data\">\n";
print "<p align=\"center\">\n";
print "Sélectionnez le fichier qu'un précédent backup vous a fourni : ";
print "<input type=\"file\" name=\"fichier\">";
print "<input type=\"hidden\" name=\"MAX_FILE_SIZE\" VALUE=\"40000000\">";
print "&nbsp;&nbsp;\n";
print "<input type='submit' class='coul' name='bouton' value='Restaurer'>\n";
print "</FORM>\n";
print "</p>\n";
}

function erreur($mess) {   //pour le 2e passage
erreur($mess);
gohistory(-1);
print "</body></html>";
exit();
}


function enregistrer() {
global $etab_rne,$HIDEDATA, $nom;
$erreur="";
$copies="";
$infosfichier=$_FILES['fichier'];
//print_r($infosfichier);print "<br>";
$nom=strtolower($infosfichier['name']);
if (empty($nom)) erreur('Pas de fichier indiqué !');
$type=$infosfichier['type'];
$tmp_name=$infosfichier['tmp_name'];
$size=$infosfichier['size'];
$error=$infosfichier['error'];
if ($tmp_name=='none' || $size==0) erreur("Le fichier n'existe pas ou a une taille nulle ou trop importante.");
if ($error) erreur("Erreur $error pour $nom (tmp_name=$tmp_name)");
$dest="../data/sadmin/";
creertousrep($dest);
if (!is_dir($dest)) erreur("Impossible de créer le répertoire $dest.");
$dest.="$nom";
if (!move_uploaded_file($tmp_name,$dest)) erreur("Erreur de copie vers $dest.");
return $dest;
}

//-------------  ppal  -------------------
opensession('Sadmin',false);
if ($sess_login=='admstats') {
	aneantir_session();
	goto("./index.php");
	}
connecte($host,$user,$mdp,$db);

print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n";
print "<HTML><HEAD><link rel=\"stylesheet\" href=\"../include/general.css\">\n";
//print "<meta http-equiv=\"content-type\" content=\"text/html; charset=ISO-8859-1\">\n";
print "<title>Restauration de la base $db</title></head>\n";
print "<BASE TARGET=\"_self\">\n";
print "<BODY class=\"arial_sadmin\">\n";
print "<p class='titre'>Restauration complète de la base GiSCCo</p><hr width=\"30%\">\n";
ini_set('file_uploads','On');         //autorise l'upload
ini_set('upload_max_filesize','80M');  //d'au plus 80 Mo (trouvé jusqu'à 63 Mo pour 60000 élèves et 400 étabs)
if (!isset($bouton)) 
	choisir();
else {
    set_time_limit(0);
    $nomrecu=enregistrer();
	$gz=gzopen($nomrecu,"r");
    $res=query("SHOW TABLES");
    while ($row=mysql_fetch_array($res)) {
        query("DROP TABLE $row[0]");
        }
    if (SQL_execgz($nomrecu,$erreurs,"",true)) {
        print "</br></br><p align='center'>Restauration effectuée convenablement.</p>";
    	}
	else { 
		print "<h3>Erreurs : </h3>";
        SQL_afferreurs($erreurs);
        print "</p>";
    	}
    }

retour("sadmin_bas2.php");
voircetendroit();
print "</body></html>";

?>
