source: trunk/admin/admin.php@ 2

Last change on this file since 2 was 2, checked in by root, 15 years ago

importo il progetto

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