<?
$adresa = $HTTP_X_FORWARDED_FOR . $REMOTE_ADDR; //zistime IP adresu navstevnika + IP z ISP Cache servera
if ($hlasoval==ano):
$cas = 1200; //doba za ktoru sa moze znova hlasovat
//ak uz hlasoval a cookies su stale ulozene zvysi sa hodnota $uz_hlasoval
$uz_hlasoval++; //cookies su serveru zasielane automaticky, po naviazani spojenie klient server
if ($uz_hlasoval == 1): //je tu prvy krat alebo ma zakazane Cookies => test IP
$data = file("data.log"); //prehlada log subor na pritomnost IP adresy
for ($i=0; $i<count($data); $i++):
$data[$i] = str_replace("\n","",$data[$i]);
$zaznam = explode(":",$data[$i]);
if ($zaznam[7]==$adresa): //zistuje, ci nasiel rovnaku IP v log subore, ak ano porovna cas posledneho hlasovania
if (time()-mktime($zaznam[0],$zaznam[1],$zaznam[2],$zaznam[3],$zaznam[4],$zaznam[5])<$cas) $uz_hlasoval=2;
endif;
endfor;
endif;
if ($uz_hlasoval == 1): //je tu prvy raz
//caka, kym prestane existovat hlasuje_niekto_iny, sucasne cisti vyrovnavaciu pamat, opakuje kazdych 500ms
do {ClearStatCache();usleep(500);} while (file_exists("hlasuje_niekto_iny"));
fopen("hlasuje_niekto_iny","w"); //vytvori subor, aby nikto nemohol hlasovat
setcookie("uz_hlasoval",$uz_hlasoval,time()+$cas); //zasleme cookies klientovi s platnostou 20 min od teraz
$subor = fopen("data.log",w); //zapiseme do log suboru zaznam o hlasovani + IP adresu
if ($uz_hlasoval == 1) fwrite($subor,date("H:i:s:m:j:Y").":".$volba.":".$adresa."\n");
for ($i=0; $i<count($data); $i++):
fwrite($subor,$data[$i]."\n");
endfor;
fclose($subor);
$subor=file("anketa"); //anketa, otazky a vysledky su v subore anketa
$pocet_otazok = str_replace("\n","",$subor[0]); //v prvom riadku je pocet otazok
$otazka=str_replace("\n","",$subor[1]); //v druhom riadku je otazka
$texty=explode("|||",str_replace("\n","",$subor[2])); //v tretom su jednotlive odpovede oddelene |||
$hlasy = explode("|||",str_replace("\n","",$subor[3])); //vo stvrtom su prislusne pocty hlasov
$sucet = 0;
$hlasy[$volba]+=1; //v premennej volba je cislo poslednej volby, => zvysenie o 1
$subor1=fopen("anketa",w); //vsetky nove udaje sa zapisu do "anketa"
fwrite($subor1,$pocet_otazok."\n"); //do 1. riadku pocet otazok
fwrite($subor1,$otazka."\n"); //do 2. riadku otazka
for ($i=0;$i<$pocet_otazok-1;$i++): //jednotlive odpovede spojime retazcom |||
fwrite($subor1,$texty[$i]."|||");
endfor;
fwrite($subor1,$texty[$i] . "\n"); //do 3. riadku spojene odpovede
for ($i=0;$i<$pocet_otazok-1;$i++): //jednotlive hlasy spojime retazcom |||
fwrite($subor1,$hlasy[$i]."|||");
endfor;
fwrite($subor1,$hlasy[$i]); //do 4. riadky spojene hlasy
fclose($subor1); //zatvorime subor
include("vypis.php3"); //vypiseme anketu aj s novym hlasom
unlink("hlasuje_niekto_iny"); //zmaze subor, aby mohli hlasovat ostatni
else: //niekto sa pokusa hlasovat viac krat za sebou, uz_hlasoval <> 1
echo "<FONT face='Arial' size='2' color='#AA0000'><center>Už ste hlasovali!</center></font>";
include("vypis.php3"); //vypiseme anketu
endif;
else: //prve zobrazenie ankety
include("vypis.php3"); //vypiseme anketu
endif;
?> |