Autor | Zpráva | ||
---|---|---|---|
piiiiiiiip Profil |
Mám tenhle kod
<div id="obsah"> <?php if(isset($_GET['read'])){ $id=(int)$_GET['read']; require_once "db.php"; $Vyber=mysql_query("SELECT `nazev`,`clanek`,`datum`,`hit` FROM `clanky` WHERE `id`='$id' LIMIT 1"); $Vypis=mysql_fetch_array($Vyber); if($Vypis['nazev']){ echo " <h2>".$Vypis['nazev']."</h2> <p>".$Vypis['clanek']."</p> <p>hit: ".$Vypis['hit']."x </p> <p>".$Vypis['datum']."</p> "; mysql_query("UPDATE `clanky` SET `hit`=`hit`+1 WHERE `id`='$id' LIMIT 1"); }else{ echo "<h3>Error</h3><p>Je nám líto ale článek který hledáte neexistuje."; } } ?> </div> Po aktualizaci stránky se mi k hitu vždy přičte 1 ale učelem bylo aby se přičetla vždy jen jednou z jednoho počítače. Moderátor Joker: Titulek „Chyba v počítání zchlédnutí článku“ nevystihuje podstatu dotazu. Příště zkus prosím vymyslet lepší.
|
||
Joker Profil |
#2 · Zasláno: 19. 12. 2010, 09:24:10
piiiiiiiip:
„Po aktualizaci stránky se mi k hitu vždy přičte 1 ale učelem bylo aby se přičetla vždy jen jednou z jednoho počítače.“ Tam není chyba, ten kód je prostě napsaný tak, aby to přičetlo 1 vždycky. Čili pro tenhle účel je to špatný kód :-) Je potřeba to rozšířit o nějaké cookie nebo kontrolu IP nebo něco, podle toho, co se myslí „z jednoho počítače“. |
||
tomas789 Profil * |
#3 · Zasláno: 21. 12. 2010, 10:31:08
Cookie je sice dostatečné řešení, ale kdyby si dal někdo záležet a chtěl tvou konkrétní anketu zfalšovat nedá mu to moc práce. Částečně by si mu mohl přitížit kdybys k ověřování použil nějaký vhodný údaj z _SERVER. Nebo lépe to kombinuj s cookie.
|
||
Časová prodleva: 13 let
|
0