source: trunk/admin/modules/Elezioni/ele_lista.php@ 395

Last change on this file since 395 was 395, checked in by roby, 12 months ago
  • ADMIN

-- Aggiunto il controllo della dimensione del file immagine per i loghi di liste e gruppi per adeguarle alle dimensioni massime ammesse dal tipo di campo blob (I tipi di file immagine ammessi sono gif,jpeg,bmp,png)

File size: 16.1 KB
Line 
1<?php
2
3/************************************************************************/
4/* Eleonline - Raccolta e diffusione dei dati elettorali */
5/* by Roberto Gigli & Luciano Apolito */
6/* http://www.eleonline.it */
7/* info@eleonline.it luciano@aniene.net rgigli@libero.it */
8/************************************************************************/
9/* Modulo lista */
10/* Amministrazione */
11/************************************************************************/
12if (!defined('ADMIN_FILE')) {
13 die ("You can't access this file directly...");
14}
15
16ob_start();
17$param=strtolower($_SERVER['REQUEST_METHOD']) == 'get' ? $_GET : $_POST;
18$id_cons_gen=intval($param['id_cons_gen']);
19$perms=ChiSei($id_cons_gen);
20if ($perms<32 or !$id_cons_gen) die("$id_cons_gen -Non hai i permessi per inserire dati, o non hai scelto la consultazione!");
21$sql="SELECT t1.tipo_cons,t2.id_cons FROM ".$prefix."_ele_consultazione as t1, ".$prefix."_ele_cons_comune as t2 where t1.id_cons_gen=t2.id_cons_gen and t2.id_cons_gen='$id_cons_gen' and t2.id_comune='$id_comune'";
22$res = $dbi->prepare("$sql");
23$res->execute();
24list($tipo_cons,$id_cons) = $res->fetch(PDO::FETCH_NUM);
25
26include("modules/Elezioni/funzionidata.php");
27include("modules/Elezioni/ele.php");
28if (isset($param['mex'])) $mex=htmlentities($param['mex'], ENT_QUOTES, "UTF-8"); else $mex='';
29if (isset($param['do'])) $do=htmlentities($param['do'], ENT_QUOTES, "UTF-8"); else $do='';
30if (isset($param['min'])) $min=intval($param['min']); else $min=0;
31if (isset($param['ok'])) $ok=htmlentities($param['ok'], ENT_QUOTES, "UTF-8"); else $ok='';
32if (isset($param['id_lista'])) $id_lista=intval($param['id_lista']); else $id_lista=0;
33if (isset($param['id_circ'])) {$id_circ=intval($param['id_circ']); $_SESSION['id_circ']=$id_circ;} else
34 if (isset($_SESSION['id_circ'])) $id_circ=intval($_SESSION['id_circ']); else $id_circ=0;
35if (isset($param['id_gruppo'])) $id_gruppo=intval($param['id_gruppo']); else $id_gruppo=0;
36if (isset($param['id_gruppo2'])) $id_gruppo2=intval($param['id_gruppo2']); else $id_gruppo2=0;
37if (isset($param['num_lista'])) $num_lista=intval($param['num_lista']); else $num_lista=0;
38#if (isset($param['descr_lista'])) $descr_lista=htmlentities($param['descr_lista']); else $descr_lista='';
39if (isset($param['descr_lista'])) $descr_lista=addslashes($param['descr_lista']); else $descr_lista='';
40if (isset($param['simbolo'])) $simbolo=addslashes($param['simbolo']); else $simbolo='';
41if (isset($param['stemma'])) $stemma=addslashes($param['stemma']); else $stemma='';
42
43// Offset - visualizza il numero di elementi per pagina
44
45$offset=15;
46$hiddenInfo = "<input type=\"hidden\" name=\"min\" value=\"$min\">";
47
48
49/******************************************************/
50/*Funzione di visualizzazione globale */
51/*****************************************************/
52
53function all() {
54 global $param,$bgcolor1, $bgcolor2, $prefix, $dbi, $offset, $min, $id_cons,$tipo_cons,$id_gruppo,$id_gruppo2,$genere,$id_cons_gen,$do,$id_circ, $mex,$descr_lista,$id_lista;
55 $currentlang=$_SESSION['lang'];
56 $cur_circ=$id_circ;
57
58 $circo='';
59 $sql="SELECT circo FROM ".$prefix."_ele_tipo where tipo_cons='$tipo_cons'";
60 $res = $dbi->prepare("$sql");
61 $res->execute();
62 list($cons_circ)= $res->fetch(PDO::FETCH_NUM);
63 if($cons_circ)
64 {
65 echo "<form name=\"circo\" action=\"admin.php\" method=\"post\">";
66 echo "<br><br><table border=\"1\" width=\"50%\" ><tr bgcolor=\"$bgcolor1\"><td>"._SCEGLI_CIRCO.": </td>";
67 $sql="SELECT * FROM ".$prefix."_ele_circoscrizione where id_cons='$id_cons'";
68 $res = $dbi->prepare("$sql");
69 $res->execute();
70 echo "<input type=\"hidden\" name=\"pag\" value=\"admin.php?op=lista&amp;id_cons_gen=$id_cons_gen&amp;id_circ=\">";
71 echo "<td><select name=\"id_circ\" onChange=\"top.location.href=this.form.pag.value+this.form.id_circ.options[this.form.id_circ.selectedIndex].value;return false\">";
72 echo "<option value=\"\">";
73 while($arr=$res->fetch(PDO::FETCH_BOTH)){
74 if (!$id_circ) $id_circ=$arr['id_circ'];
75 $sel= ($arr['id_circ'] == $id_circ) ? "selected":"";
76 echo "<option value=\"".$arr['id_circ']."\" $sel>".$arr['descrizione'];
77 }
78 echo "</select></td></tr></table></form>";
79 $circo="and id_circ=$id_circ";
80 }
81 echo "<center><font class=\"title\">";
82 if ($mex) echo "<br>$mex";
83 echo "<br><b>"._LISTA."</b></font><br><br><table border=\"0\" width=\"100%\"><tr>"
84 ."<td bgcolor=\"$bgcolor1\" align=\"center\" width=\"5%\"><b>"._NUM."</b></td>"
85 ."<td bgcolor=\"$bgcolor1\" align=\"center\"><b>"._DESCR."</b></td>";
86 echo "<td bgcolor=\"$bgcolor1\" align=\"center\" width=\"5%\"><b>"._SIMBOLO."</b></td>";
87 if ($genere==1 or $genere==3 or $genere==5) { ###prova
88 echo "<td bgcolor=\"$bgcolor1\" align=\"center\"><b>"._GRUPPO."</b></td>";
89 }
90 echo "<td bgcolor=\"$bgcolor1\" align=\"center\"><b>"._FUNZIONI."</b></td></tr>";
91 $sql="SELECT * FROM ".$prefix."_ele_lista where id_cons='$id_cons' $circo ";
92 $res = $dbi->prepare("$sql");
93 $res->execute();
94 $max = $res->rowCount();
95 $nuova_lista=$max+1;
96 //-----------------------visualizza riga superiore per inserimento -
97 echo "<form name=\"lista2\" enctype=\"multipart/form-data\" action=\"admin.php\" method=\"post\">"
98 ."<input type=\"hidden\" name=\"op\" value=\"lista\">";
99 if ($do=='modify') {
100 $sql="SELECT * FROM ".$prefix."_ele_lista where id_lista='$id_lista'";
101 $resl = $dbi->prepare("$sql");
102 $resl->execute();
103 $lis=$resl->fetch(PDO::FETCH_BOTH);
104 $nuova_lista=$lis['num_lista'];
105 echo "<input type=\"hidden\" name=\"do\" value=\"update\">";
106 }else{
107 $lis['id_lista']='';
108 if ($descr_lista) $lis['descrizione']="$descr_lista";else $lis['descrizione']='';
109 echo "<input type=\"hidden\" name=\"do\" value=\"add\">";
110 }
111 //-----------------------fine visualizza riga superiore per inserimento -
112 echo "
113 <input type=\"hidden\" name=\"id_cons_gen\" value=\"$id_cons_gen\">
114 <input type=\"hidden\" name=\"id_circ\" value=\"$id_circ\">
115 <input type=\"hidden\" name=\"id_lista\" value=\"".$lis['id_lista']."\">
116 <tr>
117 <td><input type=\"text\" name=\"num_lista\" value=\"$nuova_lista\" size=\"5\"></td>
118 <td><input type=\"text\" name=\"descr_lista\" size=\"35\" value=\"".$lis['descrizione']."\"></td>
119 <td><input name=\"stemma\" type=\"file\" size=\"10\"></td>";
120
121 if ($genere==1 or $genere==3 or $genere==5) ###prova
122 {
123 echo "
124 <input type=\"hidden\" name=\"pag\" value=\"admin.php?op=lista&amp;id_circ=$id_circ&amp;id_cons_gen=$id_cons_gen&amp;id_gruppo=\">
125 <td><select name=\"id_gruppo\" onChange=\"aggiorna(6)\">
126 <option value=\"\">";
127
128 $sql="select id_gruppo, descrizione from ".$prefix."_ele_gruppo where id_cons=$id_cons $circo";
129 $result1 = $dbi->prepare("$sql");
130 $result1->execute();
131 $id_gruppo2= ($id_gruppo2)?$id_gruppo2:$id_gruppo;
132 if ($result1)
133 while(list($id,$descr)=$result1->fetch(PDO::FETCH_NUM)){
134 $sel= ($id == $id_gruppo2) ? "selected":"";
135 echo "<option value=\"$id\" $sel>$descr";
136 }
137 echo "</select></td>";
138 }
139
140 echo "<input type=\"hidden\" name=\"id_cons_gen\" value=\"$id_cons_gen\">"
141 ."<input type=\"hidden\" name=\"min\" value=\"$min\">";
142 if ($do=='modify')
143 echo "<td align=\"center\"><input type=\"submit\" name=\"add\" value=\""._MODIFY."\"></td>";
144 else
145 echo "<td align=\"center\"><input type=\"submit\" name=\"add\" value=\""._ADD."\"></td>";
146 echo "</form>";
147 echo "<SCRIPT type=\"text/javascript\">\n\n<!--\n"
148 ."document.lista2.descr_lista.focus()\n"
149 ."//-->\n";
150 echo "function vai_a() {\n";
151 echo "window.document.location.href=document.lista2.pag.value+document.lista2.id_gruppo.value\n";
152 echo "}\n";
153 echo "function aggiorna(id_ele) {\n";
154 echo "if (document.lista2.elements[id_ele].value==\"\") {vai_a()}\n";
155 echo "}\n";
156 echo "</script>\n";
157 $grup= $id_gruppo ? "and id_gruppo='$id_gruppo'":"";
158 $sql="select count(id_lista) from ".$prefix."_ele_lista where id_cons='$id_cons' $circo";
159 $result = $dbi->prepare("$sql");
160 $result->execute();
161 list($numero) = $result->fetch(PDO::FETCH_NUM);
162 $sql="select * from ".$prefix."_ele_lista where id_cons='$id_cons' $grup $circo ORDER BY num_lista LIMIT $min,$offset";
163 $result = $dbi->prepare("$sql");
164 $result->execute();
165 while(list($id_cons2,$id_lista,$num_lista, $id_gruppo,$num_gruppo,$id_circ,$num_circ, $descr_lista, $simbolo) = $result->fetch(PDO::FETCH_NUM)) {
166 $bgcolor1=($bgcolor1==$_SESSION['bgcolor1'])?$_SESSION['bgcolor2']:$_SESSION['bgcolor1'];
167 // dati gruppo
168 if ($genere==1 or $genere==3 or $genere==5){ ###prova
169 $sql="select descrizione,simbolo from ".$prefix."_ele_gruppo where id_cons='$id_cons' and id_gruppo='$id_gruppo'";
170 $result1 = $dbi->prepare("$sql");
171 $result1->execute();
172 list($descr_gruppo,$simb_gruppo)=$result1->fetch(PDO::FETCH_NUM);
173 }
174 $sql="select count(0) from ".$prefix."_ele_candidati where id_lista='$id_lista'";
175 $restemp = $dbi->prepare("$sql");
176 $restemp->execute();
177 list($numtemp)=$restemp->fetch(PDO::FETCH_NUM);
178
179 echo "<tr bgcolor=\"$bgcolor1\"><td align=\"right\"><b>$num_lista</b>"
180 ."</td><td align=\"left\"><b>$descr_lista</b>"
181 ."</td><td align=\"center\"><img class=\"stemma\" src=\"admin.php?op=foto&amp;id_lista=$id_lista&amp;prefix=$prefix\" width=\"50\">";
182 if ($genere==1 or $genere==3 or $genere==5) { ###prova
183 echo "</td><td align=\"left\"><b>$descr_gruppo</b></td>";
184 }
185 echo "<td align=\"center\" nowrap>[<a
186 href=\"admin.php?op=lista&amp;do=modify&amp;id_lista=$id_lista&amp;id_gruppo2=$id_gruppo&amp;id_cons_gen=$id_cons_gen&amp;min=$min&amp;id_circ=$id_circ\"><img src=\"modules/Elezioni/images/edit.gif\"
187 border=\"0\" align=\"center\"> "._EDIT."</a>]";
188 if (!$numtemp)
189 echo "[<a href=\"admin.php?op=lista&amp;do=delete&amp;id_lista=$id_lista&amp;id_gruppo=$id_gruppo&amp;descr_lista=$descr_lista&amp;min=$min&amp;id_cons_gen=$id_cons_gen&amp;id_circ=$id_circ\">"._DELETE." <img src=\"modules/Elezioni/images/delete.gif\" border=\"0\" align=\"center\"></a>]";
190 else
191 echo "["._DELETE." <img src=\"modules/Elezioni/images/delete.gif\" border=\"0\" align=\"center\">]";
192
193 echo "</td></tr>";
194 }
195 echo "</table></center>";
196
197
198 #'Pagina precedente' e 'Pagina Successiva'
199 echo"<table align=\"center\" width=\"100%\" ><tr>";
200 $prev=$min-$offset;
201 if ($prev>=0) {
202 echo "<td colspan=\"5\" align=\"center\" bgcolor=\"$bgcolor1\"><a href=\"admin.php?op=lista&amp;id_lista=$id_lista&amp;id_gruppo=$id_gruppo&amp;id_circ=$cur_circ&amp;min=$prev&amp;id_cons_gen=$id_cons_gen\">";
203 echo "<b>$offset "._PREV_MATCH."</b></a></td>";
204 }
205
206 $next=$min+$offset;
207 if ($next>=($offset-1)) {
208 if($next>=$max) $next = $max;
209 else {
210 echo "<td colspan=\"5\" align=\"center\" bgcolor=\"$bgcolor1\"><a href=\"admin.php?op=lista&amp;id_lista=$id_lista&amp;id_gruppo=$id_gruppo&amp;id_circ=$cur_circ&amp;min=$next&amp;id_cons_gen=$id_cons_gen\">";
211 echo "<b>$offset "._NEXT_MATCH."</b></a></td>";
212 }
213 }
214 echo "</tr></table><br>";
215
216}
217
218function lista($ok, $do,$id_lista, $num_lista, $id_gruppo,$id_circ, $descr_lista, $simbolo,$stemma) {
219 global $param,$bgcolor1, $bgcolor2, $prefix, $dbi, $descr_cons, $id_cons,$simbolo2,$tipo_cons,$min,$genere,$id_cons_gen;
220 $aid=$_SESSION['aid'];
221 $perms=ChiSei($id_cons_gen);
222 if (!$id_gruppo) $id_gruppo=0;
223 $sql="select num_gruppo from ".$prefix."_ele_gruppo where id_gruppo='$id_gruppo'";
224 $result1 = $dbi->prepare("$sql");
225 $result1->execute();
226 list($num_gruppo)=$result1->fetch(PDO::FETCH_NUM);
227 if ($perms >16) {
228 if ($do == "delete") {
229 if ($ok !="1") {
230 ele();
231 echo "<center><br><br>"._DOMCANCELLA." "._LISTA." $descr_lista ?<br>";
232 echo "[ <a href=\"admin.php?op=lista&amp;id_cons_gen=$id_cons_gen&amp;min=$min&amp;id_circ=$id_circ\">"._NO."</a> ] - [<a href=\"admin.php?op=lista&amp;do=delete&amp;id_lista=$id_lista&amp;id_gruppo=$id_gruppo&amp;id_circ=$id_circ&amp;ok=1&amp;min=$min&amp;id_cons_gen=$id_cons_gen\">"._YES."</a> ]";exit;
233 }else{
234 $sql="delete from ".$prefix."_ele_lista where id_lista='$id_lista'";
235 $result = $dbi->prepare("$sql");
236 $result->execute();
237 Header("Location: admin.php?op=lista&id_circ=$id_circ&id_cons_gen=$id_cons_gen&min=$min");
238 }
239 }elseif ($do == "add") {
240 if ($descr_lista and ($id_gruppo or ($genere!=3 and $genere!=5))) {
241 $stemmablob='';
242 $stemmanome='';
243 $STEMM=$_FILES['stemma'];
244 $filestemma=$STEMM['tmp_name'];
245 #### Controllo della dimensione del file immagine
246 $lungh=filesize($filestemma);
247 if($lungh>60000){
248 $exploded = explode('.',$filestemma);
249 $allowedTypes = array(IMAGETYPE_PNG, IMAGETYPE_JPEG, IMAGETYPE_GIF);
250 $ext = exif_imagetype($filestemma);
251 if ($ext==1)
252 $imageTmp=imagecreatefromgif($filestemma);
253 elseif ($ext==2)
254 $imageTmp=imagecreatefromjpeg($filestemma);
255 elseif ($ext==3)
256 $imageTmp=imagecreatefrompng($filestemma);
257 elseif ($ext==6)
258 $imageTmp=imagecreatefrombmp($filestemma);
259 $x=100;$y=10;
260 while(filesize($filestemma)>60000 and $x>0){
261 imagejpeg($imageTmp, $filestemma, $x);
262 $x=$x-$y;
263 }
264 imagedestroy($imageTmp);
265 }
266 ####
267 $nomestemma=$STEMM['name'];
268 $sqlset='';
269 if ($filestemma){
270 $fdstemma = fopen ("$filestemma", "rb");
271 $stemmacontents = fread ($fdstemma, filesize ("$filestemma"));
272 fclose ($fdstemma);
273 $stemmablob=addslashes($stemmacontents);
274 $stemmanome=addslashes($nomestemma);
275 }
276 $sql="insert into ".$prefix."_ele_lista (id_cons,num_lista,id_gruppo,num_gruppo,id_circ,descrizione,simbolo,stemma) values ('$id_cons','$num_lista','$id_gruppo','$num_gruppo','$id_circ','$descr_lista','$stemmanome','$stemmablob')";
277 $result = $dbi->prepare("$sql");
278 $result->execute();
279 Header("Location: admin.php?op=lista&id_circ=$id_circ&min=$min&id_cons_gen=$id_cons_gen");
280 } else {
281 $mex="";
282 if (!$id_gruppo) $mex.="- Devi collegare la lista ad un gruppo! -";
283 if (!$descr_lista) $mex.="- Devi inserire il nome della lista! -";
284 Header("Location: admin.php?op=lista&id_circ=$id_circ&min=$min&id_cons_gen=$id_cons_gen&descr_lista=$descr_lista&id_gruppo=$id_gruppo&mex=$mex");
285 }
286 }elseif ($do == "update") {
287 $stemmablob='';
288 $stemmanome='';
289 $STEMM=$_FILES['stemma'];
290 $filestemma=$STEMM['tmp_name'];
291 #### Controllo della dimensione del file immagine
292 $lungh=filesize($filestemma);
293 if($lungh>60000){
294 $exploded = explode('.',$filestemma);
295 $allowedTypes = array(IMAGETYPE_PNG, IMAGETYPE_JPEG, IMAGETYPE_GIF);
296 $ext = exif_imagetype($filestemma);
297 if ($ext==1)
298 $imageTmp=imagecreatefromgif($filestemma);
299 elseif ($ext==2)
300 $imageTmp=imagecreatefromjpeg($filestemma);
301 elseif ($ext==3)
302 $imageTmp=imagecreatefrompng($filestemma);
303 elseif ($ext==6)
304 $imageTmp=imagecreatefrombmp($filestemma);
305 $x=100;$y=10;
306 while(filesize($filestemma)>60000 and $x>0){
307 imagejpeg($imageTmp, $filestemma, $x);
308 $x=$x-$y;
309 }
310 imagedestroy($imageTmp);
311 }
312 ####
313 $nomestemma=$STEMM['name'];
314 $sqlset='';
315 if ($filestemma){
316 $fdstemma = fopen ("$filestemma", "rb");
317 $stemmacontents = fread ($fdstemma, filesize ("$filestemma"));
318 fclose ($fdstemma);
319 $stemmablob=addslashes($stemmacontents);
320 $stemmanome=($nomestemma);
321 $cond=", simbolo='$stemmanome', stemma='$stemmablob'";
322 } else {$cond='';}
323 $sql="update ".$prefix."_ele_lista set num_lista='$num_lista' , id_gruppo='$id_gruppo',num_gruppo='$num_gruppo',descrizione='$descr_lista' $cond where id_lista='$id_lista'";
324 #die("TEST: $sql");
325 $result = $dbi->prepare("$sql");
326 $result->execute();
327 Header("Location: admin.php?op=lista&id_circ=$id_circ&min=$min&id_cons_gen=$id_cons_gen");
328 }
329
330
331 }
332}
333
334
335
336
337
338
339
340if ($do and $do!='modify')
341 lista($ok, $do,$id_lista, $num_lista, $id_gruppo,$id_circ,$descr_lista, $simbolo,$stemma);
342ele();
343all();
344echo"</td></tr></table>";
345include("footer.php");
346
347ob_end_flush();
348
349?>
Note: See TracBrowser for help on using the repository browser.