Grafická anketa s SQL (2.) -
zdrojový kód
<HTML>
<HEAD>
<META CONTENT="text/html; charset=windows-1250" HTTP-EQUIV="Content-Type" content="text/html; charset=WINDOWS-1250">
<TITLE>Ankteta</TITLE>
<LINK rel="stylesheet" type="text/css" href="styl.css">
</HEAD>
<BODY>
<?php
$souborip="anketa-ip.txt"; //soubor s ip adresami hlasujících
$soubor="hlasuj.txt"; //soubor s hlasy
$aktualni = $REMOTE_ADDR; //aktuální ip adresa
$otazka = "Jak se vám líbí <br> tyto stránky?"; //Otázka
$odp = array("Super!!","Dobrý.","Ujde.","Hrůza!!!"); //Odpovědi
//Kontrola existence souborů
if (!file_exists($souborip))
{
err ($souborip);
exit;
}
if (!file_exists($soubor))
{
err ($soubor);
exit;
}
//Konec kontroly
//Otevření a načtení hlasů
$data = fopen($soubor, "r");
$cti = fread($data, filesize($soubor)+10);
fclose($data);
list($a, $b, $c, $d) = explode( "Đ", $cti);
//Hlasování
if (isset($odpoved))
{
if (zjistiip($souborip, $aktualni))
{
if ($odpoved == "a") {$a++;}
elseif ($odpoved == "b") {$b++;}
elseif ($odpoved == "c") {$c++;}
elseif ($odpoved == "d") {$d++;}
$zapsat = "$a" . "Đ" . "$b" . "Đ" . "$c" . "Đ" . "$d" . "Đ";
$kam = fopen($soubor, "w");
fwrite($kam, $zapsat); //zapsání nového hlasu do souboru
fclose($kam);
$ipsoubor = fopen($souborip, "r"); //zapsání ip adresy odesílatele hlasu
$data = fread($ipsoubor, filesize($souborip)+10);
fclose($ipsoubor);
$write = $data.$aktualni."Đ";
$kam = fopen($souborip, "r+");
fwrite($kam,$write);
fclose($kam);
}
}
//Zobrazení výsledků
$celkem = $a+$b+$c+$d;
$lidi = $celkem;
if ($celkem == 0)
{
$celkem = "1";
$lidi="0";
}
$pr = $celkem/100;
$a = number_format($a/$pr,1);
$b = number_format($b/$pr,1);
$c = number_format($c/$pr,1);
$d = number_format($d/$pr,1);
$pismeno = array ("a","b","c","d");
$procenta = array ("$a","$b","$c","$d");
$kolik = "4";
echo "<table border='0' cellpadding='0' cellspacing='0'>\n";
echo "<tr><td colspan='2' class='nadpis'>$otazka</td></tr>\n";
for ($i=0; $i<$kolik ;$i++ )
{
if (zjistiip($souborip, $aktualni))
{
echo "<tr><td colspan='2' class='text'><a href=anketa.php?odpoved=$pismeno[$i]>$odp[$i]</a></td></tr>\n";
}
else
{
echo "<tr><td colspan='2' class='text' >$odp[$i]</td></tr>\n";
}
echo "<tr><td bgcolor='#ffffff' width='85px'><img src='prouzek.png' height='5px' width='".(($procenta[$i])/1.2)."px'></td><td class='text' width='10px'> $procenta[$i]%</td></tr>\n";
}
echo "<tr><td colspan='2' class='nadpis'>Celkem hlasovalo: $lidi</td></tr></table>\n";
//Funkce pro vypsání chyby
function err ($soubor)
{
echo "<font color=red><b>Chyba!</b></font><br>Nelze nalézt soubor <b>$soubor</b>!\n";
}
//funkce pro zjištění ip adresy
function zjistiip($souborip, $ip)
{
$ipsoubor = fopen($souborip, "r");
$data = fread($ipsoubor, filesize($souborip)+10);
fclose($ipsoubor);
$ipadresy = explode("Đ",$data);
if (in_array($ip, $ipadresy))
{
return false; //Pokud již bylo z dané ip adresy hlasováno
}
else
{
return true; // pokud nebylo z dané ip hlasováno
}
} //konec funkce
?>
</BODY>
</HTML>
Vložil/Poslal/Autor: Admin
Funkčnost:
běží na straně serveru, nemělo by záležet na typu prohlížeče