Autor Zpráva
senior
Profil
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
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
senior:
Toto by tě mělo poslat správným směrem:
Komentáře -- blog
senior
Profil
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
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
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
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
Proměnná $hlasoval se musí někde na začátku načíst z cookie, což nikde není provedeno.
senior
Profil
Keeehi:
Vďaka za radu, ale neviem ako to urobiť :-(
Keeehi
Profil
Tak se nauč s cookies pracovat:
http://www.linuxsoft.cz/article.php?id_article=436
senior
Profil
Keeehi:
Vďaka za radu, neostáva mi nič iné len sa to naučiť a anketu dať zatiaľ "k ledu" :-(
senior
Profil
Vložil som chýbajúci kus kódu a už to správne funguje.
senior
Profil
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
Po kliknutí na odpoveď sa hláška stratí. Asi bude chyba v načítaná v COOKIE, no neviem si poradiť.
Ďakujem za pomoc a ochotu.
anonymní
Profil *
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.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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