Autor Zpráva
Holy.day
Profil *
Zdravím, mám menší problém. Kód:
if($odeslat):

if($page . "-cookie"!="ohodnoceno") {
SetCookie($page . "-cookie", "ohodnoceno", Time()+31536000);
MySQL_Query("UPDATE Hodnoceni SET Stranka = '$page2', Hodnoceni = Hodnoceni + $hodnoceni, Pocet = Pocet + 1 , Stranka2 =

'$page' WHERE Stranka2 = '$page'"); }


echo "(průměr článku <a href="http://gothic.czif.net/" . $zaznam["Stranka"] . "-" . $zaznam["Stranka2"] . "" target="_top">" .

$zaznam["Stranka"] . "-" . $zaznam["Stranka2"] . "</a>: <b>" . Number_Format($zaznam["Hodnoceni"] / $zaznam["Pocet"], 1, ",", ".") . "</b>,

hodnoceno " . $zaznam["Pocet"] . "x)";

endif;


Snažím se naprogramovat hodnocení povídek na mém webu. Jde o to, že v případě neexistence cookie $page . "-cookie" (v testování se jedná o $innosuv-svet-1-cookie) se má tato cookie odeslat prohlížeči a v databázi zvětšit počet hodnocení o 1 a celkovou hodnotu o $hodnoceni. Testovací stránka včetně potřebných parametrů:
http://gothic.czif.net/skripty/hodnoceni_pridej.php?page=innosuv-svet- 1&page2=fanart
. Ačkoliv o tom pochybuju, můžu mít i chybu jinde, zde je celý kód:
<?

$wz_spojeni = MySQL_Connect("localhost", "holyday_czif_net", "hlddb");
MySQL_Select_DB("holyday_czif_net");

$napis = MySQL_Query("SELECT * FROM Hodnoceni WHERE Stranka2 = '$page'");
$zaznam = MySQL_Fetch_Array($napis);

if(!$uniqid) SetCookie("uniqid", MD5(UniqID("id")), Time()+31536000);

if($odeslat):
if($page . "-cookie"!="ohodnoceno") {
SetCookie($page . "-cookie", "ohodnoceno", Time()+31536000);
MySQL_Query("UPDATE Hodnoceni SET Stranka = '$page2', Hodnoceni = Hodnoceni + $hodnoceni, Pocet = Pocet + 1 , Stranka2 =

'$page' WHERE Stranka2 = '$page'"); }


echo "(průměr článku <a href="http://gothic.czif.net/" . $zaznam["Stranka"] . "-" . $zaznam["Stranka2"] . "" target="_top">" .

$zaznam["Stranka"] . "-" . $zaznam["Stranka2"] . "</a>: <b>" . Number_Format($zaznam["Hodnoceni"] / $zaznam["Pocet"], 1, ",", ".") . "</b>,

hodnoceno " . $zaznam["Pocet"] . "x)";

endif;
function Vytisknout($x)
{ echo $x . "<br> "; }

echo "<br><br>" . Array_Walk($HTTP_COOKIE_VARS, "Vytisknout") . "<br><br>";
echo $HTTP_COOKIE_VARS[0];
echo $page . "-cookie";
?>

Ohodnoťte (1 je nejhorší, 10 nejlepší):
<form action="">
<input type="radio" name="hodnoceni" value="1"<? echo $hodnoceni==1 ? " checked" : ""?>>1&nbsp;&nbsp;
<input type="radio" name="hodnoceni" value="2"<? echo $hodnoceni==2 ? " checked" : ""?>>2&nbsp;&nbsp;
<input type="radio" name="hodnoceni" value="3"<? echo $hodnoceni==3 ? " checked" : ""?>>3&nbsp;&nbsp;
<input type="radio" name="hodnoceni" value="4"<? echo $hodnoceni==4 ? " checked" : ""?>>4&nbsp;&nbsp;
<input type="radio" name="hodnoceni" value="5"<? echo $hodnoceni==5 ? " checked" : ""?>>5&nbsp;&nbsp;
<input type="radio" name="hodnoceni" value="6"<? echo $hodnoceni==6 ? " checked" : ""?>>6&nbsp;&nbsp;
<input type="radio" name="hodnoceni" value="7"<? echo $hodnoceni==7 ? " checked" : ""?>>7&nbsp;&nbsp;
<input type="radio" name="hodnoceni" value="8"<? echo $hodnoceni==8 ? " checked" : ""?>>8&nbsp;&nbsp;
<input type="radio" name="hodnoceni" value="9"<? echo $hodnoceni==9 ? " checked" : ""?>>9&nbsp;&nbsp;
<input type="radio" name="hodnoceni" value="10"<? echo $hodnoceni==10 ? " checked" : ""?>>10&nbsp;&nbsp;
<input type="hidden" name="page" value="<? echo $page; ?>">
<input type="hidden" name="page2" value="<? echo $page2; ?>">
<input type="hidden" name="uniqid" value="<? echo $uniqid; ?>">
<input type="submit" name="odeslat" value="Ohodnotit">
</form>
los
Profil *
Toto je vždy pravdivé, pretože každý reťazec končiaci "-cookie" je iný ako reťazec "ohodnoceno":
if($page . "-cookie"!="ohodnoceno") {


Hodnota cookie je uložená v $_COOKIE.

Jeden cookie na jednu poviedku je mrhanie, pretože počet cookie, ktoré si prehliadač pamätá na jednu doménu, je obmedzený.
Kontrola hlasovania pomocou cookie sa dá ľahko obísť. Ak sú používatelia neregistrovaní, tak by som kontroloval skôr IP.
Holy.day
Profil *
Díky. Jinak o kontrole IP jsem už přemýšlel, jenže nevím jak to udělat, aby nebyla postupem času zaplavená záznamy. Snad jen kdyby se u každé povídky v jednom záznamu ukládaly postupně do určité buňky za sebe oddělené třeba čárkou.
Toto téma je uzamčeno. Odpověď nelze zaslat.