Na testovacim PC bezi anketa i pocitadlo navstev dobre akorat kdyz to dam na net tak to nejede. Nehlasi to zadne chyby jen to nefunguje. Nevim co stim. Prosim poradte. pridava kod kdy byse to chtelo nekou cist:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<title>ankete</title>
<style>
.anketa {font-size: 9pt; width: 100px; padding: 5px; line-height: 10px;}
a:link {color: black;}
a:visited {color: black;}
a:hover {color: black; font-weight: bold;}
a:active {color: black;}
a {text-decoration: underline; font-weight: 12pt;}
body { background-color: #9AC2C7;}
</style>
</head>
<body>
<?php function zobraz ($a){ ?>
<div class="anketa">
<b>Jak se vám líbí tyto stránky?</b><br><br>
<a href="anketa.php?hlas=1">Líbí se mi</a><br>
<div style=" background-color: #FF0000; width: <? echo ("$a[0]");?>px; padding: 3px;"><? echo ("$a[0]");?></div> <br>
<a href="anketa.php?hlas=2">Ujdou</a><br>
<div style=" background-color: #00FF00; width: <? echo ("$a[1]"); ?>px; padding: 3px;"> <? echo ("$a[1]"); ?></div><br>
<a href="anketa.php?hlas=3">Nic moc</a><br>
<div style=" background-color: #00ffff; width: <? echo ("$a[2]");?>px; padding: 3px;"> <? echo ("$a[2]");?></div><br>
Hlasovalo: <? echo ("$a[3]") ?>lidí<br></div>
<? } ?>
<?php
function novy_klic($db) {
$posledni = 0;
$klic= dba_firstkey($db);
while ($klic != false) {
if ($klic > $posledni){
$posledni = $klic;
}
$posledni = $klic;
$klic = dba_nextkey($db);
}
return $posledni + 1;
}
// konec funkci!
if (file_exists ("anketa.txt")){
$file = fopen ("anketa.txt", "r");
$data = fread($file,100);
$a =unserialize ($data);
} else {
$file= fopen ("anketa.txt", "a+");
$a = array(0,0,0,0);
}
fclose ($file);
// kontrolauzivtale
$soubor = "ip.db";
if (file_exists($soubor)){
$db= dba_open($soubor, "r");
}else {
$db= dba_open($soubor, "c");
}
for($klic = dba_firstkey($db); $klic!= false; $klic= dba_nextkey($db)){
$data= dba_fetch($klic,$db);
$uzivatel = unserialize($data);
if ($uzivatel[ip] == $REMOTE_ADDR ){
$l=$uzivatel[cas] + 300;
$k =time();
if ( $k <= $l){
dba_close($db);
zobraz ($a);
echo ("</body>");
exit;
}
}
}
dba_close($db);
if ($hlas == 1){
++$a[0];
}elseif ($hlas== 2){
++$a[1];
}elseif ($hlas== 3){
++$a[2];
}
$a[3]=$a[0]+ $a[1] + $a[2];
$u[ip]= $REMOTE_ADDR;
$u[cas]= time();
$soubor="ip.db";
if (file_exists($soubor)){
$db= dba_open($soubor, "w");
}else {
$db= dba_open($soubor, "c");
}
dba_replace(novy_klic($db),serialize($u),$db);
dba_sync($db);
dba_close($db);
$data = serialize ($a);
$file = fopen ("anketa.txt", "w");
fputs ($file,$data);
fclose($file);
zobraz($a);
?>
</body>
zkus
if ($_GET["hlas"] == 1){
++$a[0];
}elseif ($_GET["hlas"] == 2){
++$a[1];
}elseif ($_GET["hlas"] == 3){
++$a[2];
}
ale kdyz uz tak na to koukam, tak by stalo za to to prepsat. asi ve stylu nacteni hlasu z get, kontorola na meze pole a pak rovnou pricteni na ten index. treba tak nejak:
if(!empty($_GET["hlas"]))
if(($_GET["hlas"] < MAXIMUM) && ($_GET["hlas"] > 0))
++$a[$_GET["hlas"]];