| 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: 13 let
|
|||
0