mazani anketky

3 příspěvky

Archiv diskusního fóra

Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.

  1. mam dotas na zdrojaku <?php if (!isset($_COOKIE["kolacek"])) { // první vyvolání nebo if ($odpoved) { // prohlí?eč nepodporuje cookie $odpoved = null; $hlasovano = '1'; $hlasZprava = 'Prohlí?eč nepodporuje cookie<BR>nebo ji? bylo hlasováno'; } else { $hlasovano = '0'; // první vylolání } } else { // následující vyvolání s funkčním cookie if (!$odpoved) { $odpoved = null; $hlasovano = '1'; // $hlasZprava = 'Chyba v parametrech ankety<BR>nebo ji? dříve hlasováno'; $hlasZprava = 'Ji? jste hlasoval/a'; } else { // hlas ke zpracovani $hlasovano = $_COOKIE["kolacek"]; if ($hlasovano == '0') { // platný hlas ke zpracování $hlasovano = '1'; $hlasZprava = 'Děkujeme'; } else { // ji? hlasováno $odpoved = null; $hlasZprava = 'Ji? bylo hlasováno'; } } } setcookie('kolacek', $hlasovano, time()+3600, '/'); ?> . . . <?php $soubor = 'hlasy.txt'; if (!File_Exists ($soubor)) { exit("<P>Nelze najít soubor $soubor.<BR>"); } $klika = fopen($soubor, 'r'); if ($klika == false) { exit("<P>Nelze otevřít soubor $soubor ke čtení.<BR>"); } if (!feof ($klika)) { $radek = fgets($klika, 4096); } fclose ($klika); list($a, $b, $c, $d, $e) = explode( '|', $radek); if ($odpoved) { // vyvolání ankety s hlasováním if ($odpoved == 'a') {$a++;} elseif ($odpoved == 'b') {$b++;} elseif ($odpoved == 'c') {$c++;} elseif ($odpoved == 'd') {$d++;} elseif ($odpoved == 'e') {$e++;} // else {echo 'Chyba v parametrech ankety';} } $radek = "$a" . "|" . "$b" . "|" . "$c" . "|" . "$d" . "|" . "$e" . "|" . "\n"; $klika = fopen($soubor, 'w'); if ($klika == false) { exit("<P>Nelze otevřít soubor $soubor k přepsání.<BR>"); } fputs($klika,$radek,strlen($radek)); fclose($klika); //součet v?ech hlasů $celkem = $a + $b + $c + $d + $e; //if ($celkem == 0) {$celkem = 1;} //výpočet 1 procenta $procento = $celkem / 100; if ($procento == 0) {$procento = 1;} //výpočet procent hlasů pro jednotlivé otázky //a ulo?ení procent do pole $arr1 = array ( "a"=>round($a / $procento), "b"=>round($b / $procento), "c"=>round($c / $procento), "d"=>round($d / $procento), "e"=>round($e / $procento) ); //ulo?ení textů odpovědí do pole $arr2 = array ( "a"=>"Skvělé", "b"=>"Velmi dobré", "c"=>"Dobré", "d"=>"Nic moc", "e"=>"Hrůza" ); //ulo?ení barev grafů do pole $arr3 = array ( "a"=>"#9ACD32", "b"=>"#1E90FF", "c"=>"#FFD700", "d"=>"#FFA500", "e"=>"#FF00FF" ); //délka grafů v pixelech $pixelu = 100; //setřídění podle počtu hlasů asort ($arr1); //nejvy??í hodnoty na začátek $arr1 = array_reverse($arr1, true); //ukazatel na začátek pole reset ($arr1); //zobrazení tabulky s výsledky echo "<TABLE class=tab cellpadding=3 cellspacing=0><TR><TH class=hdr colspan=2>Ohodno?te tyto stránky</TH></TR>"; $ct = 0; while (list ($key, $val) = each ($arr1)) { $hodn = $arr1["$key"]; $odpo = $arr2["$key"]; $barv = $arr3["$key"]; $ct++; if ($ct == 1) {$pomer = $hodn / $pixelu;} if ($pomer == 0) {$pomer = 1;} $delka = $hodn / $pomer; echo "<TR><TD class=det>"; if (!$hlasZprava) { echo "<A href=$PHP_SELF?odpoved=$key>$odpo</A>"; } else { echo "<SPAN title='Prohlí?eč nepodporuje cookie nebo ji? bylo hlasováno'>$odpo</SPAN>"; } echo "<BR><DIV class=spn style=\"background: $barv; border-color: $barv; width: $delka"; echo "\"></DIV></TD><TD class=det> $hodn %</TD></TR>"; } echo "<TR><TH class=hdr colspan=2>Celkem hlasů: $celkem"; echo "<BR>$hlasZprava"; echo "</TH></TR></TABLE>"; ?> se my prubezne sam od sebe smaze uznavam neni to sice muj script ale kdyz se na to podivam tak nic co by tomu rikalo ze se ma smazat tan nevidim :(
  2. Mno, je to moc dlouhý, ale smaže se to když to poprvé soubor nepřečte ($klika = fopen($soubor, 'r');) a podruhé jo ($klika = fopen($soubor, 'w');), poněvadž $radek bude prázdnej a tak to zapíše prázdnej řetězec. A taky je to zbytečně složitý a divně ošetřený, a ten soubor by stačilo otevřít jednou.
  3. ok aspon vím kde mam zasahovat dík

← Zpět na všechna témata