Autor Zpráva
Wan-To
Profil *
Mám tento problém (čtěte si komentáře):

$sur = $HTTP_GET_VARS["survey"];//zjistím, jestli je odpověď ano nebo ne
$surId = $HTTP_GET_VARS["surid"];//získám ID ankety
if(($sur == "yes" || $sur == "no") && $surId != "") {//pokud je odpověď platná a zároveň je určená anketa
$surs = explode("s", $HTTP_COOKIE_VARS["surs"]);//rozdělím cookies, která je ve formátu sID_ANKETYsID_DALSI_ANKETY, např. s0s1s3s8, na pole identifikátorů pro ankety
$ans = false;//zatím neodpovězeno
for($i = 0; $i < count($surs); $i++) {//klasicky projdu pole
if($surs[$i] == $surId) {//pokud narazím na id ankety, otázka byla už zodpovězená
$ans = true;//odpovězeno
}
}
if($ans == false) {//když odpovídáme poprvé
setCookie("surs", ($HTTP_COOKIE_VARS["surs"] . "s" . $surId), 2419200);
/*k cookies surs přidám ("s" . $id_ankety), platnost nastavím na měsíc.
Pokud cookies neexistuje, $HTTP_COOKIE_VARS vrátí prázdný řetězec.
Tady je problém. Cookies se nastaví pouze do IE 6.0 (zkoušel jsem i Operu) a pouze na localhostu (na Apache).
Na webzdarma mi to prostě neběhá a lze hlasovat víckrát.
Když cookies nastavím v JS, takže javascript: document.cookie = "surs=s0;"; void 0; , PHP se do nich stejně neobtěžuje dál zapisovat.
Nevím, jestli to není tím, že už jednu cookies používám (jmenuje se id).
@mysql_query("update survey set " . $sur . " = " . $sur . " + 1 where id = " . $surId);//aktualizace ankety v MySQL databázi
}
}

Pokud si chcete vyzkoušet „více-hlasování" ;-) , tak je na wanto.czweb.org
Yuhů
Profil
čert ví. Asi si udělej nový příklad s jednodušším kódem. Tím zkus pouze uložit a přečíst cookie, nic víc, žádné podmínky nebo jiná kouzla. A dej vědět, jestli se to povedlo.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0