source: trunk/admin/admin.php@ 215

Last change on this file since 215 was 206, checked in by roby, 11 years ago

client: aggiunta gestione pagina voti di lista a tema tour

File size: 17.6 KB
RevLine 
[2]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/* Admin */
10/* Amministrazione */
11/************************************************************************/
12
13/* Descrizione file admin.php =
14effettua il login o il rilancio alla gestione */
15
16define('ADMIN_FILE', true);
17#$LIMITE=3; //fascia di separazione del maggioritario (15.000 abitanti)
[35]18# tempo di sessione: ini_set('session.gc_maxlifetime','3600');
[2]19
20// Adattamento variabili superglobal
21// Versione di php
22$phpver = phpversion();
23
24// converte superglobal se php e' < 4.1.0
25
26if ($phpver < '4.1.0') {
27 $_GET = $HTTP_GET_VARS;
28 $_POST = $HTTP_POST_VARS;
29 $_SERVER = $HTTP_SERVER_VARS;
30 $_FILES = $HTTP_POST_FILES;
31 $_ENV = $HTTP_ENV_VARS;
32 if($_SERVER['REQUEST_METHOD'] == "POST") {
33 $_REQUEST = $_POST;
34 } elseif($_SERVER['REQUEST_METHOD'] == "GET") {
35 $_REQUEST = $_GET;
36 }
37 if(isset($HTTP_COOKIE_VARS)) {
38 $_COOKIE = $HTTP_COOKIE_VARS;
39 }
40 if(isset($HTTP_SESSION_VARS)) {
41 $_SESSION = $HTTP_SESSION_VARS;
42 }
43}
44
45$param=strtolower($_SERVER['REQUEST_METHOD']) == 'get' ? $_GET : $_POST;
46if (isset($param['aid'])) get_magic_quotes_gpc() ? $aid=$param['aid']:$aid=addslashes($param['aid']);
47if (isset($param['pwd'])) get_magic_quotes_gpc() ? $pwd2=$param['pwd']:$pwd2=addslashes($param['pwd']);
48// Additional security (Union, CLike, XSS)
49
50// We want to use the function stripos,
51// but thats only available since PHP5.
52// So we cloned the function...
53if(!function_exists('stripos')) {
54 function stripos_clone($haystack, $needle, $offset=0) {
55 return strpos(strtoupper($haystack), strtoupper($needle), $offset);
56 }
57} else {
58// But when this is PHP5, we use the original function
59 function stripos_clone($haystack, $needle, $offset=0) {
60 return stripos($haystack, $needle, $offset=0);
61 }
62}
63
64 if(isset($_SERVER['QUERY_STRING']) && (!stripos_clone($_SERVER['QUERY_STRING'], "ad_click") || !stripos_clone($_SERVER['QUERY_STRING'], "url"))) {
65 $queryString = $_SERVER['QUERY_STRING'];
66 if (stripos_clone($queryString,'%20union%20') OR stripos_clone($queryString,'/*') OR stripos_clone($queryString,'*/union/*') OR stripos_clone($queryString,'c2nyaxb0') OR stripos_clone($queryString,'+union+') OR stripos_clone($queryString,'http://') OR (stripos_clone($queryString,'cmd=') AND !stripos_clone($queryString,'&cmd')) OR (stripos_clone($queryString,'exec') AND !stripos_clone($queryString,'execu')) OR stripos_clone($queryString,'concat')) {
67 die('Operazione non consentita');
68 }
69 }
70
71
72foreach ($_GET as $sec_key => $secvalue) {
[21]73 if ((preg_match("/<[^>]*script*\"?[^>]*>/i",$secvalue)) ||
74 (preg_match("/<[^>]*object*\"?[^>]*>/i", $secvalue)) ||
75 (preg_match("/<[^>]*iframe*\"?[^>]*>/i", $secvalue)) ||
76 (preg_match("/<[^>]*applet*\"?[^>]*>/i", $secvalue)) ||
77 (preg_match("/<[^>]*meta*\"?[^>]*>/i", $secvalue)) ||
78 (preg_match("/<[^>]*style*\"?[^>]*>/i", $secvalue)) ||
79 (preg_match("/<[^>]*form*\"?[^>]*>/i", $secvalue)) ||
80 (preg_match("/<[^>]*img*\"?[^>]*>/i", $secvalue)) ||
81 (preg_match("/<[^>]*onmouseover*\"?[^>]*>/i", $secvalue)) ||
82 (preg_match("/<[^>]*body*\"?[^>]*>/i", $secvalue)) ||
83 (preg_match("/\"/", $secvalue)) ||
84 (preg_match("/inside_mod/i", $sec_key))) {
[2]85 die ("Operazione non consentita");
86 }
87 }
88
89 foreach ($_POST as $secvalue) {
[21]90 if ((preg_match("/<[^>]*onmouseover*\"?[^>]*>/i", $secvalue)) || (preg_match("/<[^>]script*\"?[^>]*>/i", $secvalue)) || (preg_match("/<[^>]*body*\"?[^>]*>/i", $secvalue)) || (preg_match("/<[^>]style*\"?[^>]*>/i", $secvalue))) {
[2]91 die ('Operazione non consentita');
92 }
93 }
94
95// Posting from other servers in not allowed
96// Fix by Quake
97// Bug found by PeNdEjO
98
99if ($_SERVER['REQUEST_METHOD'] == "POST") {
100 if (isset($_SERVER['HTTP_REFERER'])) {
101 if (!stripos_clone($_SERVER['HTTP_REFERER'], $_SERVER['HTTP_HOST'])) {
102 die('Posting da un altro server non consentito!');
103 }
104 } else {
105# die('<b>Attenzione:</b> il tuo browser non puo inviare gli header HTTP_REFERER al website.<br>'.$_SERVER['HTTP_REFERER']);
106 }
107}
108
109
110
111
112
113
114
115//===================================================================
116session_name('sesadmin');
117session_start();//MODIFICHE PER GESTIONE SESSIONI
118 // gestione sessione
119
120
[154]121@require_once("config.php");
122# verifica se effettuata la configurazione
123if(empty($dbname)) {
124 die("<html><body><div style=\"text-align:center\"><br /><br /><img src=\"../client/modules/Elezioni/images/logo.jpg\" alt=\"Eleonline\" title=\"Eleonline\"><br /><br /><strong>Sembra che <a href='http://www.eleonline.it' title='Eleonline'>Eleonline</a> non sia stato ancora installato.<br /><br />Puoi procedere <a href='../install/index.php'>cliccando qui</a> per iniziare l'installazione</strong></div></body></html>");
125}
[2]126
[154]127
128
129
130
131
[2]132 $dbi=mysql_connect($dbhost, $dbuname, $dbpass) or die("Connessione non riuscita: " . mysql_error());
133 mysql_select_db($dbname)or die("Connessione non riuscita:" . mysql_error());
[21]134 mysql_query("SET NAMES 'utf8'", $dbi);
[2]135//---10/05/2009 gestione consultazione predefinita
136 $res_config = mysql_query("select * from ".$prefix."_config ",$dbi);
137 list ($sitename,$siteurl,$site_logo,$slogan,$startdate,$adminmail,$tema,$foot,$language,$blocco
138,$testata,$logo,$fileout,$copyright,$versione,$patch,$id_comune,$multicomune,$flash,$displayerrors,$editor,$tema_on,$ed_user) = mysql_fetch_row($res_config);
139 $siteistat=$id_comune;
140if (!isset($_SESSION['id_comune'])){
141 $_SESSION['sitename']=$sitename;
142 $_SESSION['siteurl']=$siteurl;
143 $_SESSION['site_logo']=$site_logo;
144 $_SESSION['slogan']=$slogan;
145 $_SESSION['startdate']=$startdate;
146 $_SESSION['adminmail']=$adminmail;
147 if ($tema=='facebook')
148 $_SESSION['tema']=$tema;
149 else $_SESSION['tema']='default';
150 $_SESSION['foot']=$foot;
151 $_SESSION['lang']=$language;
152 $_SESSION['blocco']=$blocco;
153 $_SESSION['testata']=$testata;
154 $_SESSION['logo']=$logo;
155 $_SESSION['fileout']=$fileout;
156 $_SESSION['copyright']=$copyright;
157 $_SESSION['versione']=$versione;
158 $_SESSION['patch']=$patch;
159 $_SESSION['id_comune']=$id_comune;
160 $_SESSION['multicomune']=$multicomune;
161 $_SESSION['flash']=$flash;
162 $_SESSION['displayerrors']=$displayerrors;
163 $_SESSION['editor']=$editor;
164 $_SESSION['tema_on']=$tema_on;
165 $_SESSION['ed_user']=$ed_user;
166}
167//fine
168if (isset($param['aid'])) {
169 if (strlen($aid)>25 ) { die ("Nome utente troppo lungo: $aid"); }
170 if (!isset($param['id_ses']) or $param['id_ses'] != session_id()) logout();
[21]171 if (strstr( $aid," ")) { die ("Gli spazi non sono ammessi nel nome utente: $aid"); }
[2]172 if (isset($_SESSION['aid'])){
173 logout();//se hai gia' una sessione aperta non puoi postare 'aid'
174 }else{
175
176
177 // $pwd2=$param['pwd'];
178 $mpwd=md5($pwd2);
179
180 // se superUserAdmin
181########
182 $res_comune = mysql_query("select adminsuper from ".$prefix."_authors where aid='$aid' and pwd='$mpwd'",$dbi);
183 list ($adminsuper) = mysql_fetch_row($res_comune);
184 if ($adminsuper==1) $id_comune='0';
185 elseif (is_numeric($param['id_comune']) and intval($param['id_comune'])>0) $id_comune=intval($param['id_comune']);
186 $res= mysql_query("select counter,admlanguage from ".$prefix."_authors where aid='$aid' and pwd='$mpwd' and id_comune='$id_comune'", $dbi);
187
188 if ($res){
189 $esiste=mysql_num_rows($res);
190
191
192 list ($counter,$tmplang) = mysql_fetch_row($res);
193 $counter+=1;
194 if(strlen($tmplang)==2) $language=$tmplang;
195 $resup=mysql_query("update ".$prefix."_authors set counter=$counter where aid='$aid' and pwd='$mpwd' and id_comune='$id_comune'", $dbi);
196 if ($esiste==1) {
197 $_SESSION['dbi']=$dbi;
198 $_SESSION['aid']="$aid";
199 $_SESSION['pwd']="$mpwd";
200 $_SESSION['lang']="$language";
201 $_SESSION['id_comune']="$id_comune";
202 $_SESSION['prefix']="soraldo";
203 $_SESSION['remote']=$_SERVER['REMOTE_ADDR'];
204 $_SESSION['bgcolor1']='#ffffff';
205 $_SESSION['bgcolor2']='#c5c5c5';
206 session_regenerate_id();
207 }
208 }
209 }
210}else{
211$_SESSION['dbi']=$dbi;
212
213}
214if (! isset($_SESSION['lang'])) $_SESSION['lang']=$language;
215$currentlang=strlen($_SESSION['lang'])==2 ? $_SESSION['lang']: $language;
216#if (isset($_SESSION['lang'])) $currentlang=$_SESSION['lang']; else $currentlang='it';
217if (isset($_SESSION['aid']))
218{
219//lettura sessione
220$aid=$_SESSION['aid'];
221$dbi=$_SESSION['dbi'];
222$prefix=$_SESSION['prefix'];
223$id_comune=$_SESSION['id_comune'];
224if (isset($_GET['id_cons_gen'])) $id_cons_gen=intval($_GET['id_cons_gen']);
225else {
226//10/05/2009 gestione consultazione predefinita
227 $result = mysql_query("select id_cons_gen from ".$prefix."_ele_cons_comune where preferita='1' and (id_comune='$id_comune' or id_comune=0)", $dbi);
228list($id_cons_gen) = mysql_fetch_row($result);
229//---fine $id_cons_gen='';
230}
231$currentlang=$_SESSION['lang'];
232$bgcolor1=$_SESSION['bgcolor1'];
233$bgcolor2=$_SESSION['bgcolor2'];
234$bgcolor1='#e7e7e7';
235$session=$_SESSION['remote'];
236
237$perms=ChiSei($id_cons_gen);
238}
239
240
241/*********************************************************/
242/* Login Function */
243/*********************************************************/
244function ChiSei($id_cons_gen){
245
246//$server=$_SERVER['REMOTE_ADDR'];
247//$session=$_SESSION['remote'];
248//if ($session!=$server) { die ("Problema di sessione"); };
249$aid=$_SESSION['aid'];
250$dbi=$_SESSION['dbi'];
251$prefix=$_SESSION['prefix'];
252$pwd=$_SESSION['pwd'];
253$id_comune=$_SESSION['id_comune'];
254
255
256$perms=0;
257$result = mysql_query("select adminsuper, admincomune, adminop from ".$prefix."_authors where aid='$aid' and pwd='$pwd' and (id_comune='$id_comune' or id_comune=0)", $dbi);
258list($adminsuper,$admincomune,$adminop) = mysql_fetch_row($result);
259//exit;
260if (($adminsuper==1 || $admincomune==1 || $adminop==1)) {
261 if ($adminsuper==1)
262 return 256;
263// $ressup = mysql_query("select permessi from ".$prefix."_ele_operatori where id_cons='0' and aid='$aid' and id_comune='0'",$dbi);
264 elseif ($adminop==1)
265 $ressup = mysql_query("select permessi from ".$prefix."_ele_operatori where id_cons='0' and aid='$aid' and id_comune='$id_comune'",$dbi);
266 elseif ($admincomune==1) {
267 $res=mysql_query("select id_cons from ".$prefix."_ele_cons_comune where id_comune='$id_comune' and id_cons_gen='$id_cons_gen'",$dbi);
268 list ($id_cons)=mysql_fetch_row($res);
269 $ressup = mysql_query("select permessi from ".$prefix."_ele_operatori where id_cons='$id_cons' and aid='$aid' and id_comune='$id_comune'",$dbi);
270 }
271 if (mysql_num_rows($ressup)==1) list($perms)=mysql_fetch_row($ressup); else $perms=0;
272 return $perms;
273} else return 0;
274}
275
276function OpenTable(){
277echo "<table width=\"100%\" cellpadding=\"0\" cellspacing=\"2\" BORDER=\"0\">";
278}
279
280function CloseTable(){
281echo "</table>";
282}
283
284function login() {
285 global $param,$prefix,$dbi,$multicomune,$siteistat,$language,$tema;
286 $lang=strlen($_SESSION['lang'])==2 ? $_SESSION['lang']: $language;
287 if (isset($param['id_comune'])) $id_comune=intval($param['id_comune']);
[31]288 if (!isset($id_comune)) $id_comune=0;
[2]289 session_regenerate_id();
290 $id_ses=session_id();
291#die("test:$tema");
292 //include("modules/Elezioni/language/lang-$lang.php");
293 include ("header.php");
294 echo "<div align=\"middle\"><font class=\"title\"><b>"._GESTIONE."</b></font></center>";
295 echo "<br>"; # method=\"post\"
296 echo "<form name=\"login\" method=\"post\" action=\"admin.php\">"
[80]297 ."<table class=\"table-menu\">"
[2]298 ."<tr><td>"._ADMINID."</td>"
299 ."<td><input type=\"text\" NAME=\"aid\" SIZE=\"20\" MAXLENGTH=\"25\"></td></tr>"
300 ."<tr><td>"._PASSWORD."</td>"
301 ."<td><input type=\"password\" NAME=\"pwd\" SIZE=\"20\" MAXLENGTH=\"18\"></td></tr>"
302 ."<tr><td>";
303 // scelta comune
304 if($multicomune=='1'){
305 echo ""._COMUNE."</td><td>";
306 $sqlcomu="select id_comune,descrizione from ".$prefix."_ele_comuni order by descrizione asc";
307 $rescomu= mysql_query("$sqlcomu",$dbi);
308
309 echo "<select name=\"id_comune\">";
310 while (list($id,$descrizione)=mysql_fetch_row($rescomu))
311 {
312 $sel=($id == $id_comune) ? "selected":"";
313 echo "<option value=\"$id\" $sel>$descrizione";
314 }
315 }else{
316 echo "<input type=\"hidden\" name=\"id_comune\" value=\"$siteistat\">";
317 }
318// echo "<input type=\"hidden\" name=\"id_comune\" value=\"$id_comune\">";
319 if(strlen($lang)==2) echo "<input type=\"hidden\" name=\"language\" value=\"$lang\">";
320 echo "</td></tr><tr><td>";
321 echo "<input type=\"hidden\" name=\"id_ses\" value=\"$id_ses\">";
322 echo "<input type=\"submit\" VALUE=\""._OK."\">"
323 ."</td></tr></table>"
324 ."</form></div>";
325
326 include ("footer.php");
327}
328
329function logout()
330{
331/* $lang=$_SESSION['lang'];
332$id_comune=$_SESSION['id_comune'];
333// setcookie ("PHPSESSID", "", time() - 3600);
334 session_cache_expire (0);
335 $_SESSION=array(); //MODIFICHE PER GESTIONE SESSIONI
336 session_unset();
337 session_destroy();
338 Header("Location: admin.php?id_comune=$id_comune&language=$lang");
339*/
340global $siteistat;
341
342$ref="Location: admin.php?";
343if (isset($_SESSION['id_comune']))
344$id_comune=$_SESSION['id_comune'];
345else
346$id_comune=$siteistat;
347$ref=$ref."id_comune=".$id_comune;
348
349if (isset($_SESSION['lang']))
350$ref=$ref."&language=".$_SESSION['lang'];
351
352session_cache_expire (0);
353$_SESSION=array();
354session_unset();
355session_destroy();
356Header($ref);
357
358}
359
360if (isset($param['op'])) get_magic_quotes_gpc() ? $op=$param['op']:$op=addslashes($param['op']); else $op='ele';
361//if (isset($param['op'])) $op=$param['op']; else $op='ele';
362if (isset($_SESSION['aid']) AND $_SESSION['remote']==$_SERVER['REMOTE_ADDR']) {
363switch($op) {
364 case "tipo":
365 include("modules/Elezioni/ele_tipi.php");
366 break;
367 case "constipi":
368 include("modules/Elezioni/ele_consultazionitipi.php");
369 break;
370 case "aggiorna":
371 include("modules/Elezioni/aggiorna.php");
372 break;
373 case "parziali":
374 include("modules/Elezioni/ele_parziali.php");
375 break;
376 case "ele":
377 include("modules/Elezioni/ele.php");
378 break;
379 case "consultazione":
380 include("modules/Elezioni/ele_consultazioni.php");
381 break;
382 case "configurazione":
383 include("modules/Elezioni/ele_configurazione.php");
384 break;
385 case "cons_comuni":
386 include("modules/Elezioni/ele_cons_comuni.php");
387 break;
388 case "confconsiglio":
389 include("modules/Elezioni/ele_confcons.php");
390 break;
391 case "inscomuni":
392 include("modules/Elezioni/ele_comuni.php");
393 break;
394 case "oper_admin":
395 include("modules/Elezioni/ele_operatori.php");
396 break;
397 case "inscollegi":
398 include("modules/Elezioni/ele_collegi.php");
399 break;
400 case "associazioni":
401 include("modules/Elezioni/ele_associazioni.php");
402 break;
403 case "operatori":
404 include("modules/Elezioni/ele_operatori.php");
405 break;
406 case "permessi":
407 include("modules/Elezioni/ele_permessi.php");
408 break;
409 case "circo":
410 include("modules/Elezioni/ele_circo.php");
411 break;
412 case "sede":
413 include("modules/Elezioni/ele_sede.php");
414 break;
415case "sezione":
416 include("modules/Elezioni/ele_sezione.php");
417 break;
418case "gruppo":
419 include("modules/Elezioni/ele_gruppo.php");
420 break;
421case "rec_add_aff":
422 include("modules/Elezioni/ele_affluenze.php");
423 break;
424case "rec_add_mod":
425 include("modules/Elezioni/ele_modelli.php");
426 break;
427case "upgruppo":
428 include("modules/Elezioni/ele_gruppo.php");
429 break;
430case "delimggruppo":
431 include("modules/Elezioni/ele_gruppo.php");
432 break;
433case "lista":
434 include("modules/Elezioni/ele_lista.php");
435 break;
436case "uplista":
437 include("modules/Elezioni/ele_lista.php");
438 break;
439case "delimglista":
440 include("modules/Elezioni/ele_lista.php");
441 break;
442case "candidato":
443 include("modules/Elezioni/ele_candidato.php");
444 break;
445case "upcandidato":
446 include("modules/Elezioni/ele_candidato.php");
447 break;
448case "delimgcandidato":
449 include("modules/Elezioni/ele_candidato.php");
450 break;
451
452case "voti":
453 include("modules/Elezioni/ele_voti.php");
454 break;
455case "sezioni_voti":
456 include("modules/Elezioni/ele_voti.php");
457 break;
458case "rec_voti":
459 include("modules/Elezioni/ele_voti.php");
460 break;
461case "rec_voti_gruppi":
462 include("modules/Elezioni/ele_voti.php");
463 break;
464case "rec_add_votanti":
465 include("modules/Elezioni/ele_voti.php");
466 break;
467case "rec_finale":
468 include("modules/Elezioni/ele_voti.php");
469 break;
470case "controllo_voti":
471 include("modules/Elezioni/controllo_voti.php");
472 break;
473case "controllo_votanti":
474 include("modules/Elezioni/controllo_votanti.php");
475 break;
476case "come":
477 include("modules/Elezioni/ele_come.php");
478 break;
479case "numeri":
480 include("modules/Elezioni/ele_come.php");
481 break;
482case "servizi":
483 include("modules/Elezioni/ele_come.php");
484 break;
485case "link":
486 include("modules/Elezioni/ele_come.php");
487 break;
488case "conf":
489 include("modules/Elezioni/ele_conf.php");
490 break;
491case "stampa":
492 include("modules/Elezioni/ele_stampe.php");
493 break;
494case "cambiopwd":
495 include("modules/Elezioni/ele_pwd.php");
496 break;
497case "eletti":
498 include("modules/Elezioni/ele_eletti.php");
499 break;
500case "foto":
501 include("modules/Elezioni/foto.php");
502 break;
503case "consiglieri":
504 include("modules/Elezioni/ele_consiglieri.php");
505 break;
506case "backup":
507 include("modules/Elezioni/backup.php");
508 break;
509case "restore":
510 include("modules/Elezioni/restore.php");
511 break;
512case "scarica":
513 include("modules/Elezioni/scarica.php");
514 break;
515case "importa":
516 include("modules/Elezioni/importa.php");
517 break;
[80]518case "widget":
519 include("modules/Elezioni/ele_widget.php");
[2]520 break;
[139]521case "riepilogo":
522 include("modules/Elezioni/ele_riepilogo.php");
523 break;
[2]524case "logout":
525 logout();
526 break;
527}
528}else {
529
530 login();
531
532}
533
534
535?>
Note: See TracBrowser for help on using the repository browser.