Autor | Zpráva | ||
---|---|---|---|
senior Profil |
#1 · Zasláno: 7. 8. 2010, 13:39:51
Príjemný deň,
hľadám nejaký PHP script na anketu bez databázy, niečo na spôsob ako je na stránke Odkaz úplne na konci stránky pod nadpisom Líbil se vám článek? Skúsil som aj script z webu Jaknaweb.com: <? $filename="anketa.dat"; $pruh=50; if ($hlasuj<>'') { $hlasoval++; SetCookie("hlasoval", $hlasoval, Time()+86400); if ($hlasoval==1) { $file=FOpen($filename, "r+"); $data=Explode("#",FRead($file,999)); $data[$hlasuj]=$data[$hlasuj]+1; Rewind($file); FWrite($file, Implode($data,"#")); FClose($file); }else{$alert="Už jste hlasoval/a!!!";}} if (File_Exists($filename)): $file = FOpen($filename, "r+"); $data=Explode("#",FRead($file,999)); Rewind($file); else: $file = FOpen($filename, "w"); $data[0]=0; $data[1]=0; endif; FClose($file); ?> <TABLE> <TR> <TD COLSPAN=2>Líbí se vám tato anketa?</TD> </TR> <TR> <TD><A HREF="anketa.php?hlasuj=0">Ano</A></TD> <TD><?if (($data[0]==0)and($data[1]==0)) {echo "0(0%)";}else{?><IMG SRC="sloupec.gif" ALIGN="middle" HEIGHT=4 WIDTH=<?echo round($data[0]/($data[0]+$data[1])*$pruh);?>> <?echo $data[0],"(",round($data[0]/($data[0]+$data[1])*100),"%)";}?></TD> </TR> <TR> <TD><A HREF="anketa.php?hlasuj=1">Ne</A></TD> <TD><?if (($data[0]==0)and($data[1]==0)) {echo "0(0%)";}else{?><IMG SRC="sloupec.gif" ALIGN="middle" HEIGHT=4 WIDTH=<?echo round($data[1]/($data[0]+$data[1])*$pruh);?>> <?echo $data[1],"(",round($data[1]/($data[0]+$data[1])*100),"%)";}?></TD> </TR> <TR> <TD COLSPAN=2><FONT SIZE="-2">(Hlasujte kliknutím na odpověď)</FONT></TD> </TR> </TABLE> <?if ($alert<>'') {?> <SCRIPT LANGUAGE=JAVASCRIPT> alert('<?echo $alert?>'); </SCRIPT> <?}?> ale ten vyhadzuje chybu aj na ukážke na http://www.jaknaweb.com/script-ukazka/139/dalsi-typ-ankety-anone: Warning: fopen(anketa.dat) [function.fopen]: failed to open stream: Permission denied in /home/www/jaknaweb.com/www/scrip/php_script/anketa4/anketa.php on line 16 Warning: fread(): supplied argument is not a valid stream resource in /home/www/jaknaweb.com/www/scrip/php_script/anketa4/anketa.php on line 17 Warning: rewind(): supplied argument is not a valid stream resource in /home/www/jaknaweb.com/www/scrip/php_script/anketa4/anketa.php on line 18 Warning: fclose(): supplied argument is not a valid stream resource in /home/www/jaknaweb.com/www/scrip/php_script/anketa4/anketa.php on line 24 Môže mi prosí, niekto poradiť? Google mi našiel iba také ankety, ktoré mi moc nevyhovujú. Ďakujem za každú radu. |
||
Afrod Profil |
#2 · Zasláno: 7. 8. 2010, 13:54:38
Tahle anketa je v pohodě použil sem jí u klientky a funguje bezproblémů. www.soom.cz/index.php?name=articles/show&aid=109
|
||
Keeehi Profil |
#3 · Zasláno: 7. 8. 2010, 14:09:48
|
||
senior Profil |
#4 · Zasláno: 7. 8. 2010, 14:22:55 · Upravil/a: senior
Afrod:
Vďaka za super pomoc. Zatiaľ som to pozrel iba tak letecky, ale určite sa tam bude dať farebne rozlíšiť kladné a záporné odpovede. Keeehi: Vďaka za pomoc, podívam sa aj na to. |
||
senior Profil |
#5 · Zasláno: 7. 8. 2010, 14:45:46
Afrod:
Na tvojej ukážke http://mega-pro.webz.cz/ukazky/anketa/anketa.php nie je zobrazená anketová otázka, ani možnosť výberu kladnej alebo zápornej odpovede. |
||
Afrod Profil |
#6 · Zasláno: 7. 8. 2010, 16:41:24
senior:
Všechno nastavuješ v tom dat souboru. Třeba takhle Líbí se Vám<br> naše stránky?;4;Ano:Ujdou:Ne:Hrozný;54:0:0:0;54 |
||
senior Profil |
#7 · Zasláno: 8. 8. 2010, 17:58:08
Vrátil som sa k pôvodnému PHP scriptu, ale ani po úprave podľa Keeehi nebol funkčný. Doplnil som riadok 4 a script funguje, ale ešte nefunguje ochrana proti viacnásobnému hlasovaniu a nefunguje ani alert. Poraďte mi prosím kde mám hľadať chybu. Ďakujem za každý nápad.
Tu je opraveny script: <? $filename="anketa.dat"; $pruh=50; $hlasuj = $_GET['hlasuj']; if ($hlasuj<>'') { $hlasoval++; SetCookie("hlasoval", $hlasoval, Time()+86400); if ($hlasoval==1) { $file=FOpen($filename, "r+"); $data=Explode("#",FRead($file,999)); $data[$hlasuj]=$data[$hlasuj]+1; Rewind($file); FWrite($file, Implode($data,"#")); FClose($file); }else{$alert="Už jste hlasoval/a!!!";}} if (File_Exists($filename)): $file = FOpen($filename, "r+"); $data=Explode("#",FRead($file,999)); Rewind($file); else: $file = FOpen($filename, "w"); $data[0]=0; $data[1]=0; endif; FClose($file); ?> <TABLE> <TR> <TD COLSPAN=2>Líbí se vám tato anketa?</TD> </TR> <TR> <TD><A HREF="anketa.php?hlasuj=0">Ano</A></TD> <TD><?if (($data[0]==0)and($data[1]==0)) {echo "0(0%)";}else{?><IMG SRC="sloupec.gif" ALIGN="middle" HEIGHT=4 WIDTH=<?echo round($data[0]/($data[0]+$data[1])*$pruh);?>> <?echo $data[0],"(",round($data[0]/($data[0]+$data[1])*100),"%)";}?></TD> </TR> <TR> <TD><A HREF="anketa.php?hlasuj=1">Ne</A></TD> <TD><?if (($data[0]==0)and($data[1]==0)) {echo "0(0%)";}else{?><IMG SRC="sloupec.gif" ALIGN="middle" HEIGHT=4 WIDTH=<?echo round($data[1]/($data[0]+$data[1])*$pruh);?>> <?echo $data[1],"(",round($data[1]/($data[0]+$data[1])*100),"%)";}?></TD> </TR> <TR> <TD COLSPAN=2><FONT SIZE="-2">(Hlasujte kliknutím na odpověď)</FONT></TD> </TR> </TABLE> <?if ($alert<>'') {?> <SCRIPT LANGUAGE=JAVASCRIPT> alert('<?echo $alert?>'); </SCRIPT> <?}?> |
||
Keeehi Profil |
#8 · Zasláno: 8. 8. 2010, 18:10:27 · Upravil/a: Keeehi
Proměnná $hlasoval se musí někde na začátku načíst z cookie, což nikde není provedeno.
|
||
senior Profil |
#9 · Zasláno: 8. 8. 2010, 18:28:01
Keeehi:
Vďaka za radu, ale neviem ako to urobiť :-( |
||
Keeehi Profil |
#10 · Zasláno: 8. 8. 2010, 18:37:25
Tak se nauč s cookies pracovat:
http://www.linuxsoft.cz/article.php?id_article=436 |
||
senior Profil |
#11 · Zasláno: 8. 8. 2010, 20:29:13
Keeehi:
Vďaka za radu, neostáva mi nič iné len sa to naučiť a anketu dať zatiaľ "k ledu" :-( |
||
senior Profil |
#12 · Zasláno: 9. 8. 2010, 19:45:39
Vložil som chýbajúci kus kódu a už to správne funguje.
|
||
Časová prodleva: 3 roky
|
|||
senior Profil |
#13 · Zasláno: 10. 12. 2013, 12:58:36
Dobrý deň,
prosím o pomoc. Vymazal som si anketu na serveri a nedarí sa mi spojazdniť anketu, ktorú sme tu riešili. <?php $filename="anketa.dat"; $pruh=50; $hlasuj = $_GET['hlasuj']; $hlasoval = $_COOKIE['hlasoval']; if ($hlasuj<>'') { $hlasoval++; SetCookie("hlasoval", "$hlasoval", Time()+(60*60*24*30)); if ($hlasoval==1) { $file=FOpen($filename, "r+"); $data=Explode("#",FRead($file,999)); $data[$hlasuj]=$data[$hlasuj]+1; Rewind($file); FWrite($file, Implode($data,"#")); FClose($file); }else{$alert="Už ste hlasoval/a!!!";}} if (File_Exists($filename)): $file = FOpen($filename, "r+"); $data=Explode("#",FRead($file,999)); Rewind($file); else: $file = FOpen($filename, "w"); $data[0]=0; $data[1]=0; endif; FClose($file); ?> Anketa mi vypisuje hlášku: Notice: Undefined index: hlasuj in /home/gh739400/www_root/anketa.php on line 4 Ďakujem za pomoc a ochotu. |
||
anonymní Profil * |
#14 · Zasláno: 10. 12. 2013, 13:10:00
senior:
v době, kdy stránku zorbazíš, neexistuje v URL parametr hlasuj (example.com?hlasuj=...). Co je na té hlášce nepochopitelného? |
||
senior Profil |
anonymní:
Asi som už úplne zblbnutý, ale skúsil som to a nefunguje to :-( Keď zahlasujem .../anketa.php?hlasuj=0 alebo .../anketa.php?hlasuj=1 tak tá hlaška zmizne. Môžete mi prosím napísať ten parameter celý? Ďakujem. |
||
Časová prodleva: 10 let
|
0