Index: trunk/admin/admin.php
===================================================================
--- trunk/admin/admin.php	(revision 380)
+++ trunk/admin/admin.php	(revision 381)
@@ -277,5 +277,5 @@
 if(!isset($_SESSION['localrev']) and isset($_SESSION['aid']) and ChiSei(0)==256)
 {
-/*	$sql="SELECT COLUMN_NAME
+	$sql="SELECT COLUMN_NAME
 	FROM INFORMATION_SCHEMA.COLUMNS
 	WHERE TABLE_SCHEMA = '$dbname'
@@ -284,11 +284,11 @@
 	$sth = $dbi->prepare($sql);
 	$sth->execute();
-	if(!$sth->rowCount()) 
+	if($sth->rowCount()) 
 	{		
-		$sql="ALTER TABLE `soraldo_config` ADD `aggiornamento` ENUM('0','1','2') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '1' AFTER `ed_user`;";
+		$sql="ALTER TABLE `soraldo_config` DROP `aggiornamento`;";
 		$sth = $dbi->prepare($sql);
 		$sth->execute();
 	}
-	$sth = $dbi->prepare("select aggiornamento from ".$prefix."_config");
+/*	$sth = $dbi->prepare("select aggiornamento from ".$prefix."_config");
 	$sth->execute();
 	list($agg)=$sth->fetch(PDO::FETCH_NUM);
Index: trunk/admin/modules/Elezioni/aggiornamento.php
===================================================================
--- trunk/admin/modules/Elezioni/aggiornamento.php	(revision 380)
+++ trunk/admin/modules/Elezioni/aggiornamento.php	(revision 381)
@@ -59,5 +59,5 @@
 	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");	
+	$file = file("$host/ele3/log/?format=changelog&limit=100&mode=stop_on_copy&rev=$newrev&stop_rev=$myrev&verbose=off");	
 #	echo "<br>Procedo con l'aggiornamento? ";
 	echo "<form name=\"conferma\" action=\"admin.php\"><input type=\"hidden\" name=\"op\" value=\"aggiorna\">";
@@ -67,15 +67,11 @@
 	echo "<br><textarea name=\"log\" rows=\"15\" cols=\"150\">";
 	foreach ($file as $line_num => $line) echo "$line";
+
 	echo "</textarea>";
-	include("footer.php");die();
-}
-$righe='';
-	$file =  '../admin';
-	$client = '../client';
-	$trunk='./files/trunk';
-	$trunkadm='./files/trunk/admin';
-	$trunkcli='./files/trunk/client';
+	############Ã 
+	$filename = "$host/ele3/changeset?format=zip&new=$newrev&new_path=%2F&old=$myrev&old_path=%2F";
+
+	$za = new ZipArchive();
 	$path = "./files/";
-	$backup = "./backup/";
 	if(file_exists($path)) {
 		if (!is_dir($path)) { 
@@ -89,4 +85,45 @@
 		mkdir($path, 0777, true);
 	}
+	$newfile=$path."aggiornamento".$newrev;
+	copy($filename,$newfile);
+	$za->open($newfile);
+	echo "<br>prima";
+	for( $i = 0; $i < $za->numFiles; $i++ ){
+		echo "<br>$i - dentro";
+		$stat = $za->statIndex( $i );
+		print_r( $stat['name'] . PHP_EOL );
+	} 
+		############
+		include("footer.php");die();
+	}
+	$righe='';
+	$admin =  '../admin';
+	$client = '../client';
+#	$path = "/tmp/files";
+	$backup = "./backup".$myrev;
+/*	if(file_exists($path)) {
+		$i=1;
+		$ispath=$path;
+		while(file_exists($ispath))
+			$ispath=$path.$i++;
+		$path.=--$i.'/';
+	}else $path.='/';
+		if (!is_dir($path)) {
+			if(false===rename($path,$path."_da_".$myrev."_a_".$newrev)) {
+				$errmex="E' presente un file di nome $path nella cartella admin, va cancellato per poter aggiornare";
+				Header("Location: admin.php?op=aggiorna&id_cons_gen=$id_cons_gen&errmex=$errmex"); exit;
+			}
+			$righe.= "<br>La cartella $path non Ãš presente, procedo con la creazione";
+			mkdir($path, 0777, true);
+		}
+		else 
+			$righe.= "<br>La cartella $path Ãš giÃ  presente, procedo con l'aggiornamento";
+	}else{ 
+	$righe.= "<br>Creo la cartella $path";
+	mkdir($path, 0777, true);*/
+	$trunk=$path.'trunk';
+	$trunkadm=$trunk.'/admin';
+	$trunkcli=$trunk.'/client';
+	#	}
 	#	if(!file_exists($trunk)) if (false === mkdir($trunk)) { die("Impossibile creare la cartella trunk, il programma viene interrotto");}
 	#	if(!copy($file,$trunkadm)){ $righe.= "<br>Errore durante la copia del pacchetto di aggiornamento<br>";}    	 
@@ -95,11 +132,23 @@
 	
 	$filename = "$host/ele3/changeset?format=zip&new=$newrev&new_path=%2F&old=$myrev&old_path=%2F";
-	$newfile="./files/aggiornamento".$newrev;
+	$newfile=$path."aggiornamento".$newrev;
 	if(!copy($filename,$newfile)){ 
 		$errmex="Errore durante la copia del pacchetto - aggiornamento interrotto<br>";
 		Header("Location: admin.php?op=aggiorna&id_cons_gen=$id_cons_gen&errmex=$errmex"); exit;
 	}
-	$zip = new ZipArchive;
-	$res = $zip->open($newfile);
+#	$zip = new ZipArchive;
+#	$res = $zip->open($newfile);
+#############
+$za = new ZipArchive();
+
+#$za->open('theZip.zip');
+	$za->open($newfile);
+
+for( $i = 0; $i < $za->numFiles; $i++ ){
+    $stat = $za->statIndex( $i );
+    print_r( basename( $stat['name'] ) . PHP_EOL );
+} 
+die();
+################
 	$righe.= "<br>$newfile scaricato";
 	if ($res === TRUE) {
@@ -108,23 +157,27 @@
 		$righe.= '<br>File zip estratto';
 	} else {
-		$errmex= "<br>Errore nell'estrazione del file zip! Aggiornamento interrotto";
+		$errmex= "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);
-	}
+	if(file_exists($path.$backup)) {
+		$i=1;
+		$isback=$path.$backup;
+		while(file_exists($isback))
+			$isback=$path.$backup.$i++;
+		$backup=$path.$backup.$i.'/';
+	} else $backup=$path.$backup.'/';
+/*		if(false===rename($backup,$backup."_a_".$myrev)) {
+			$errmex="E' presente un file di nome $backup_a_$myrev nella cartella admin e non posso rinominare l'ultimo eseguito, va fatto a mano per poter aggiornare";
+			Header("Location: admin.php?op=aggiorna&id_cons_gen=$id_cons_gen&errmex=$errmex"); exit;
+		}
+	}else{ */
+		$righe.= "<br>Creo la cartella di backup: $backup";
+		mkdir($backup, 0755);
+#	}
 $righe.= "<br><br><b>Copio i nuovi files nell'installazione di amministrazione locale</b>";
-recurse_copy($trunkadm,$file,$backup.'admin/');
+recurse_copy($trunkadm,$admin,$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,$backup.'client/');
+recurse_copy($trunkcli,$client,$backup.'/client/');
 $righe.= "<br>Files di aggiornamento copiati correttamente.";
 function recurse_copy($src,$dst,$bck) {
@@ -132,10 +185,10 @@
     if(!file_exists($dst)) 
 		if(@mkdir($dst)==false) {
-			$errmex= "<br>Errore durante la creazione della directory $dst (controllare i permessi), aggiornamento interrotto";
+			$errmex= "Errore durante la creazione della directory $dst (controllare i permessi), aggiornamento interrotto";
 			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";
+		if(mkdir($bck,0777,true)==false) {
+			$errmex= "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;
 		}
@@ -146,10 +199,11 @@
             }
             else {
-                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(file_exists($dst . '/' . $file))
+					if(false===copy($dst . '/' . $file,$bck . '/' . $file)) {
+						$errmex= "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";
+					$errmex= "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;
 				}
@@ -168,5 +222,5 @@
 }
 $righe.=$righedb;
-$righe.= "<br><br><b>Pulisco la cartella temporanea. Operazioni concluse.</b>";
+$righe.= "<br><br><b>Operazioni di aggiornamento concluse.</b>";
 $dir = "./files/";
 if(file_exists($dir)){
@@ -174,4 +228,5 @@
     $ri = new RecursiveIteratorIterator($di, RecursiveIteratorIterator::CHILD_FIRST);
     foreach ( $ri as $file ) {
+		chmod($file, 0777);
         $file->isDir() ?  rmdir($file) : unlink($file);
     }
Index: trunk/admin/versione.php
===================================================================
--- trunk/admin/versione.php	(revision 380)
+++ trunk/admin/versione.php	(revision 381)
@@ -1,7 +1,7 @@
 <?php
 
-$versione = "3.0 rev 380";
+$versione = "3.0 rev 381";
 $version_number = $versione;
-$datarel = "17 ottobre 2022";
+$datarel = "28 ottobre 2022";
 $version = "Eleonline $version_number (<i>Data Release: $datarel</i>)";
 
Index: trunk/client/versione.php
===================================================================
--- trunk/client/versione.php	(revision 380)
+++ trunk/client/versione.php	(revision 381)
@@ -1,7 +1,7 @@
 <?php
 
-$versione = "3.0 rev 380";
+$versione = "3.0 rev 381";
 $version_number = $versione;
-$datarel = "17 ottobre 2022";
+$datarel = "28 ottobre 2022";
 $version = "Eleonline $version_number (<i>Data Release: $datarel</i>)";
 
Index: trunk/install/install2.php
===================================================================
--- trunk/install/install2.php	(revision 380)
+++ trunk/install/install2.php	(revision 381)
@@ -52,9 +52,5 @@
 	}
 $dsn = "mysql:host=$DBhostname"; #dbname=$DBname";
-$opt = [
-PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
-PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
-PDO::ATTR_EMULATE_PREPARES => false,
-];
+$opt = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES => false);
 $user=$DBuserName;
 $password=$DBpassword;
@@ -66,11 +62,8 @@
 		$database = new PDO($dsn, $user, $password, $opt);
 	 }
-        catch(PDOException $e)
-        {
-            echo $sql . "<br>" . $e->getMessage();die();
-        }
-#sostituire questa riga con le variabili per il nuovo utente e la sua password da inserire nella pagina precedente
-########################################
-#		$DBuserName='eleuser'; $DBpassword='elepass';
+	catch(PDOException $e)
+	{
+		echo $sql . "<br>" . $e->getMessage();die();
+	}
 	try{
 	$sql = "CREATE DATABASE IF NOT EXISTS $DBname;";
@@ -81,23 +74,39 @@
 	    echo $sql . "<br>" . $e->getMessage();die();
 	}
-	try {
-	$sql="CREATE USER if not exists `$ELEuserName`@'$DBhostname' IDENTIFIED BY '$ELEpassword';";
-    	$database->exec($sql);
-#        $sql= "GRANT ALL ON `$DBname`.* TO `roby`@'$DBhostname';";
-#    	$database->exec($sql);
-        $sql= "GRANT ALL ON `$DBname`.* TO `$ELEuserName`@'$DBhostname';";
-    	$database->exec($sql);
-        $sql= "FLUSH PRIVILEGES;";
-    	$database->exec($sql);
-    	$sql = "use $DBname";
-    	$database->exec($sql);
+	if(phpversion()>="5.7.6") 
+	{
+		try {
+			$sql="CREATE USER if not exists '$ELEuserName'@'$DBhostname' IDENTIFIED BY '$ELEpassword';";
+			$database->exec($sql);
+		}
+		catch(PDOException $e)
+		{
+			echo $sql . "<br>" . $e->getMessage();die();
+		}			
+		try {
+			$sql= "GRANT ALL ON `$DBname`.* TO `$ELEuserName`@'$DBhostname';";
+			$database->exec($sql);
+		}
+		catch(PDOException $e)
+		{
+			echo $sql . "<br>" . $e->getMessage();die();
+		}
+	}else{
+		try {
+			$sql="grant all on `$DBname`.* TO  '$ELEuserName'@'$DBhostname' IDENTIFIED BY '$ELEpassword';";
+			$database->exec($sql);
+		}
+		catch(PDOException $e)
+		{
+			echo $sql . "<br>" . $e->getMessage();die();
+		}		
+	}
+	$sql= "FLUSH PRIVILEGES;";
+	$database->exec($sql);
+	$sql = "use $DBname";
+	$database->exec($sql);
 	$sql = file_get_contents('sql/eleonline.sql');
 	$qr = $database->exec($sql);
 	$DBcreated = 1;
-	}
-	catch(PDOException $e)
-	{
-	    echo $sql . "<br>" . $e->getMessage();die();
-	}
 }
 
@@ -322,5 +331,5 @@
   					<td width="100">Numero Istat</td>
   					<td align="left"><input class="inputbox" type="text" name="istat" size="6" value="<?php echo "{$configArray['istat']}"; ?>" />
-					<a href="http://www.istat.it/strumenti/definizioni/comuni/" target="_blank">Preleva i codici Istat dei comuni italiani</a>
+					<a href="https://www.istat.it/it/archivio/6789" target="_blank">Preleva i codici Istat dei comuni italiani</a>
 					</td><td></td>
   				</tr>
