Autor Zpráva
piwoda
Profil
Zdravím,

mám problém s anketou v PHP, stáhl jsem si jeden kód, všechno jsem si upravil podle sebe, ale vyskytl se jeden problém.
Při kliknutí na jakoukoli odpověď se započte hlas odpovědi číslo 1, nevíte co s tím?

Anketa se nachází na stránkách http://rodokmenyostrava.cz/anketa.php

Předem Děkuji
Chro
Profil
Pokud URL obsahuje i nealfanumerické znaky, je třeba URL v tagu a, atributu href uvozovat. Jinak se skriptu předá i nepořádek s URL nesouvisející, v tvém případě style..., což skript vyhodnotí jako předání hodnoty parametru, která neobsahuje číslo, a ochrana ve skriptu ho převede na 0. Takže správně je
<a href="anketa_pridej.php?hlas=1">...</a>
Jan Tvrdík
Profil
Chro:
Tím to téměř určitě není. Vypadá to spíš, že na straně serveru se s tou hodnotou špatně pracuje.

piwoda:
Bez ukázky souvisejícího skriptu těžko určit příčinu.
piwoda
Profil
<?
$fp = FOpen ("anketa_data.dat", "r"); //Otevřít soubor anketa_data.dat pro čtení
$data = FRead ($fp, FileSize("anketa_data.dat")); //Načíst to proměnné $data soubor anketa_data.dat

$newdata = explode(";",$data); //Do proměnné $newdata rozděli proměnnou $data znakem ;
$pocty = explode(":",$newdata[3]); //Třetí pole v proměnné $newdata rozdělit znakem : a vložit jej do proměnné $pocty

for($x=0;$x<$newdata[1];$x++): //Cyklus který kontroluje odpovědi

if($hlas==$x): //Pokud bude číslo otázky souhlasit s vaši odpovědí
$pocty[$x] = $pocty[$x] + 1; //Přičte se jeden hlas k dané odpovědi
endif;

endfor;

FClose($fp); //Uzavření souboru


$newdata[4] = $newdata[4] + 1; //Přičtení jedničky k celkovému počtu hlasů
$newdata[3] = implode(":",$pocty); //Do pole $newdata[3] spojit všechny počty hlasů a mezi ně vložit znak :

$finaldata = implode(";",$newdata); //Do koncové proměnné která se bude ukládat do souboru se spojít všechna pole a mezi ně se vloží znak ;

$fp = FOpen ("anketa_data.dat", "w"); //Otevřít soubor anketa_data.dat pro zápis
FWrite ($fp, $finaldata); //Zapsat do souboru anketa_data.dat proměnnou $finaldata
FClose ($fp); //Uzavření souboru

SetCookie("UkazkovaAnketa","Voted",time()+(24*60*60)); //Nastavení cookie, že už bylo hlasováno s platností jednoho dne

?>

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0