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 |
#2 · Zasláno: 10. 3. 2013, 17:43:41
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 |
#3 · Zasláno: 10. 3. 2013, 17:53:28
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 |
#4 · Zasláno: 10. 3. 2013, 18:47:13
<? $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 ?> |
||
Časová prodleva: 11 let
|
0