Index: trunk/admin/modules/Elezioni/aggiornamento.php
===================================================================
--- trunk/admin/modules/Elezioni/aggiornamento.php	(revision 379)
+++ trunk/admin/modules/Elezioni/aggiornamento.php	(revision 380)
@@ -24,9 +24,31 @@
 
 //if ($perms<128 or !$id_cons_gen) die("$perms Non hai i permessi per inserire dati, o non hai scelto la consultazione!");
-if (isset($param['errmex'])) $mex=addslashes($param['errmex']); else $mex='';
+if (isset($param['errmex'])) $mex=htmlspecialchars($param['errmex']); else $mex='';
+if (isset($param['procedi'])) $procedi=intval($param['procedi']); else $procedi=0;
 if ($perms!=256) $mex = "Non hai i permessi per avviare un aggiornamento!";
 if($mex!='') { ele(); echo "<hr><br><h2 style=\"text-align:center;\">$mex</h2><br><hr>"; include("footer.php");die();}
-
-$newrev=$_SESSION['remoterev'];
+if(phpversion()<5.6) $host="http://80.211.143.127";
+else $host="https://trac.eleonline.it";
+$headers=get_headers("$host/ele3/changeset/");
+$testurl=strlen($headers[0])>0?true:false;
+if($testurl){		
+	$file = file("$host/ele3/changeset/");
+	$cntFile = count($file);
+	$fine=0;
+	$currentLine=0;
+	foreach ($file as $line_num => $line) {
+		if(strpos($line,'<title>') ) {$fine=1; continue;}
+		if ($fine){
+			$newrev=(int) filter_var($line, FILTER_SANITIZE_NUMBER_INT);
+			$_SESSION['remoterev']=$newrev;
+			break;
+		}
+	}
+	unset($file);
+}else{
+	$errmex="Non c'Ãš connessione con il server";
+	Header("Location: admin.php?op=aggiorna&id_cons_gen=$id_cons_gen&errmex=$errmex"); exit;
+}
+#$newrev=$_SESSION['remoterev'];
 $myrev=$_SESSION['localrev'];
 if($newrev==$myrev) {
@@ -34,7 +56,19 @@
 	Header("Location: admin.php?op=aggiorna&id_cons_gen=$id_cons_gen&errmex=$errmex"); exit;
 }
+if(!$procedi){
+	ele(); 
+	echo "<hr><br><h2 style=\"text-align:center;\">Revisione installata: $myrev<br>Revisione disponibile: $newrev</h2><br><hr>";
+	$file = file("$host/ele3/log/?format=changelog&limit=100&mode=stop_on_copy&rev=379&stop_rev=375&verbose=on");	
+#	echo "<br>Procedo con l'aggiornamento? ";
+	echo "<form name=\"conferma\" action=\"admin.php\"><input type=\"hidden\" name=\"op\" value=\"aggiorna\">";
+	echo "<input type=\"hidden\" name=\"id_cons_gen\" value=\"$id_cons_gen\"><input type=\"hidden\" name=\"procedi\" value=\"1\">";
+	echo "<br><table align=\"center\"><tr><td><h3>Procedo con l'aggiornamento?</h3></td><td><input type=\"submit\" name=\"vai\" value=\""._OK."\"></td></tr></table></form>";
+	echo "<br><br><p>Log delle modifiche (massimo 100 righe)</p>";
+	echo "<br><textarea name=\"log\" rows=\"15\" cols=\"150\">";
+	foreach ($file as $line_num => $line) echo "$line";
+	echo "</textarea>";
+	include("footer.php");die();
+}
 $righe='';
-if(phpversion()<5.6) $host="http://80.211.143.127";
-else $host="https://trac.eleonline.it";
 	$file =  '../admin';
 	$client = '../client';
@@ -43,4 +77,5 @@
 	$trunkcli='./files/trunk/client';
 	$path = "./files/";
+	$backup = "./backup/";
 	if(file_exists($path)) {
 		if (!is_dir($path)) { 
@@ -73,17 +108,25 @@
 		$righe.= '<br>File zip estratto';
 	} else {
-#		die( '<br>Errore nell\'estrazione del file zip! Aggiornamento interrotto');
-		$errmex= '<br>Errore nell\'estrazione del file zip! Aggiornamento interrotto';
+		$errmex= "<br>Errore nell'estrazione del file zip! Aggiornamento interrotto";
 		Header("Location: admin.php?op=aggiorna&id_cons_gen=$id_cons_gen&errmex=$errmex"); exit;
 	}
-	
-#}
+	if(file_exists($backup)) {
+		if (!is_dir($backup)) { 
+			$errmex="E' presente un file di nome $backup nella cartella admin, va cancellato per poter aggiornare";
+			Header("Location: admin.php?op=aggiorna&id_cons_gen=$id_cons_gen&errmex=$errmex"); exit;
+			}
+		else 
+			$righe.= "<br>La cartella $backup Ãš giÃ  presente, procedo con l'aggiornamento";
+	}else{
+		$righe.= "<br>La cartella $backup non Ãš presente, procedo con la creazione";
+		mkdir($backup, 0777, true);
+	}
 $righe.= "<br><br><b>Copio i nuovi files nell'installazione di amministrazione locale</b>";
-recurse_copy($trunkadm,$file);
+recurse_copy($trunkadm,$file,$backup.'admin/');
 $righe.= "<br>Files di aggiornamento copiati correttamente.";
 $righe.= "<br><br><b>Copio i nuovi files nell'installazione client locale</b>";
-recurse_copy($trunkcli,$client);
+recurse_copy($trunkcli,$client,$backup.'client/');
 $righe.= "<br>Files di aggiornamento copiati correttamente.";
-function recurse_copy($src,$dst) {
+function recurse_copy($src,$dst,$bck) {
     $dir = opendir($src);
     if(!file_exists($dst)) 
@@ -92,11 +135,20 @@
 			Header("Location: admin.php?op=aggiorna&id_cons_gen=$id_cons_gen&errmex=$errmex"); exit;
 		}
+    if(!file_exists($bck)) 
+		if(@mkdir($bck)==false) {
+			$errmex= "<br>Errore durante la creazione della directory $bck (controllare i permessi), aggiornamento interrotto";
+			Header("Location: admin.php?op=aggiorna&id_cons_gen=$id_cons_gen&errmex=$errmex"); exit;
+		}
     while(false !== ( $file = readdir($dir)) ) {
         if (( $file != '.' ) && ( $file != '..' )) {
             if ( is_dir($src . '/' . $file) ) {
-                recurse_copy($src . '/' . $file,$dst . '/' . $file);
+                recurse_copy($src . '/' . $file,$dst . '/' . $file,$bck . '/' . $file);
             }
             else {
-                if(!copy($src . '/' . $file,$dst . '/' . $file)) {
+                if(!copy($src . '/' . $file,$bck . '/' . $file)) {
+					$errmex= "<br>Errore durante la copia del file".$bck . '/' . $file."(controllare i permessi), aggiornamento interrotto";
+					Header("Location: admin.php?op=aggiorna&id_cons_gen=$id_cons_gen&errmex=$errmex"); exit;
+				}
+               if(!copy($src . '/' . $file,$dst . '/' . $file)) {
 					$errmex= "<br>Errore durante la copia del file".$dst . '/' . $file."(controllare i permessi), aggiornamento interrotto";
 					Header("Location: admin.php?op=aggiorna&id_cons_gen=$id_cons_gen&errmex=$errmex"); exit;
@@ -107,11 +159,9 @@
     closedir($dir);
 }
-echo "<hr><br><h2 style=\"text-align:center;\">Aggiornamento completato</h2><br><hr>";
-#echo "<br><a href=\"admin.php\"> <-------------   Torna al programma   --------------> </a><br><br><br>";
 $righedb='';
 if(file_exists('./files/trunk/admin/modules/Elezioni/aggiornadb.php')) {
 	$righe.= "<br><br><b>Aggiornamento del database</b>";
 	ob_start();
-	include ('./aggiornadb.php');
+	include ('modules/Elezioni/aggiornadb.php');
 	$righedb=ob_get_contents();
 	ob_end_clean();
@@ -127,5 +177,8 @@
     }
 }
+$_SESSION['localrev']=$newrev;
 ele();
+echo "<hr><br><h2 style=\"text-align:center;\">Aggiornamento completato</h2><br><hr>";
+echo "<br><br><h3>Log delle operazioni</h3>";
 echo $righe;
 include("footer.php");
