t9omek 0 Zgłoś post Napisano Wrzesień 11, 2015 Witam, próbuje zrobić małą sondę na stronie, znalazłem "poradnik" w którym były umieszczone te kody: SONDA.HTM <html> <head><title>Sonda</title></head> <body> <form method="post" action="dopisz.php"> Czy podoba ci sie nasz serwis?<br> <input type="radio" name="odp" value="tak">Tak<br> <input type="radio" name="odp" value="nie">Nie<br> <input type="radio" name="odp" value="nw">Nie wiem<br> <input type="submit" value="slij"> </form> </body> </html> SONDA.PHP <?PHP $file=fopen("sonda.txt","r"); /*Otwieramy plik sonda.txt*/ $linia=fgets($file, 81); /*pobieramy linię*/ $tbl=explode("#", $linia); /*zamieniamy jš na tablicę*/ $tab["tak"]=$tbl[0]; /*którš zamieniamy na tablicę asocjacyjnš*/ $tab["nie"]=$tbl[1]; $tab["nw"]=$tbl[2]; $suma = $tab["tak"] + $tab["nie"] + $tab["nw"]; /*wykonujemy obliczenia na zmiennych (wyliczamy procenty)*/ $tak = floor(($tab["tak"] / $suma) * 100); $nie = floor(($tab["nie"] / $suma) * 100); $nw = floor(($tab["nw"] / $suma) * 100); echo "<table cellpadding=\"0\" cellspacing=\"0\" border=\"1\"> <tr><td colspan=\"2\">Tak</td></tr>\n"; echo "<tr><td width=\"210\"><img src=\"linia.gif\" width=\"". 2*$tak ."\" height=\"10\"></td><td>". $tak ."% (<b>". $tab["tak"]. "</b>)</td></tr> <tr><td colspan=\"2\">Nie</td></tr>\n"; echo "<tr><td width=\"210\"><img src=\"linia.gif\" width=\"". 2*$nie ."\" height=\"10\"></td><td>". $nie ."% (<b>". $tab["nie"]. "</b>)</td></tr> <tr><td colspan=\"2\">Nie wiem</td></tr>\n"; echo "<tr><td width=\"210\"><img src=\"linia.gif\" width=\"". 2*$nw ."\" height=\"10\"></td><td>". $nw ."% (<b>". $tab["nw"]. "</b>)</td></tr> <tr><td colspan=\"2\">Łšcznie głosów: <b>$suma</b> </table>"; /*pokazujemy wyniki*/ ?> SONDA.TXT 0#0#0 DOPISZ.PHP <?PHP $file = fopen("sonda.txt","r+"); /*otwieramy plik sonda.txt*/ $linia = fgets($file, 80); $tab = explode("#",$linia); /*zapisujemy linię do tablicy*/ $tbl["tak"] = $tab[0];/*którš zapisujemy do asocjacyjnej*/ $tbl["nie"] = $tab[1]; $tbl["nw"] = $tab[2]; ++$tbl[$odp];/*zwiększamy o jeden iloć osób głosujšcych na danš odpowied*/ fseek($file, 0);/*przesuwamy strumień pliku do poczštku*/ fwrite($file, $tbl["tak"]."#".$tbl["nie"]."#".$tbl["nw"]); /*zapisujemy dane do pliku oddzielajšc je "#"*/ Header("Location: sonda.php");/*przeskakujemy do sonda.php*/ ?> wszystko działa poprawnie oprócz zapisywania: wchodzę na stronę gdzie wyświetlają mi się pytania klikam "slij" i sonda php. nie pokazuje mi prawidłowych wyników (wcale nie liczy głosów). Był bym wdzięczy gdyby ktoś pomógł by mi w rozwiązaniu problemu Udostępnij ten post Link to postu Udostępnij na innych stronach
Vasthi 74 Zgłoś post Napisano Wrzesień 11, 2015 Może nadaj uprawnienia do zapisu pliku sonda.txt ? Udostępnij ten post Link to postu Udostępnij na innych stronach
t9omek 0 Zgłoś post Napisano Wrzesień 11, 2015 faktycznie przeoczyłem, jednak nadanie praw nic nie dało efekt taki sam jak opisywałem. Kiedy nadałem wszystkim czterem plikom prawa (777) wyrzuca mi błąd Internal Server ErrorFile "/home/tomekdam/domains/t9omek.da7.mintsowy.pl/public_html/dopisz.php" is writeable by group Udostępnij ten post Link to postu Udostępnij na innych stronach
t9omek 0 Zgłoś post Napisano Wrzesień 11, 2015 gdyby ktoś potrzebował działający skrypt index <html> <head><title>Sonda</title></head> <body> <form action="glosuj.php" method="post"> <p>Co sądzisz o gotowanej marchewce?<br /> <input type="radio" name="glos" value="1" />Uwielbiam<br /> <input type="radio" name="glos" value="2" />Nienawidzę<br /> <input type="submit" value="Zagłosuj" /> </p> </form> </body> </html> glosuj.php <?php /*Początek interpretowanego bloku */ $plik = fopen("wyniki.txt", "r"); /*otwarcie do odczytu pliku z wynikami*/ $dane = fread($plik, filesize("wyniki.txt")); /*odczytanie z pliku z wynikami danych i zapisanie ich do zmiennej $dane odczytanych zostanie tylko tyle znaków ile istnieje w pliku, nie mniej, nie więcej*/ $wyniki = split(":", $dane); /*wydzielenie dwóch wyników, rozdzielenie zawartości zmiennej po znaku dwukropka*/ fclose($plik); /*zamknięcie pliku*/ if($_POST['glos'] == 1) $wyniki[0] += 1; /*jeśli użytkownik głosował "za" marchewką, czyli zmienna "glos" ma wartość jeden to do wyników za dopisywany jest jeden głos*/ else if ($_POST['glos'] == 2) $wyniki[1] += 1; /*analogiczna operacja do poprzedniej, ale dodawany jest głos "przeciw"*/ else ; /*instrukcja dla reszty przypadków, które teoretycznie nie powinny nastąpić*/ $plik = fopen("wyniki.txt", "w"); /*ponowne otwarcie pliku z wynikami, tym razem do zapisu, plik jest wyzerowany*/ flock($plik, 2); /*zablokowanie pliku przed innymi skryptami, które będą chciały zapisywać*/ fwrite($plik, "$wyniki[0]:$wyniki[1]:", 200); /*zapis wyników do pliku, 200 znaków z powodzeniem wystarczy*/ flock($plik, 3); /*zdjęcie blokady z pliku*/ fclose($plik); /*zamknięcie pliku*/ header("Location: pokaz.php"); /*przekierowanie przeglądarki do pliku pokaz.php*/ ?> /*koniec interpretowanego bloku*/ pokaz.php <?php $plik = fopen("wyniki.txt", "r"); /*otwarcie pliku z wynikami do odczytu*/ $dane = fread($plik, filesize("wyniki.txt")); /*odczytanie wszystkich bajtów z pliku*/ fclose($plik); /*zamknięcie pliku*/ $wyniki = split(":", $dane); /*rozdzielenie wyników*/ $suma = $wyniki[0] + $wyniki[1]; /*zsumowanie wyników*/ ?> <table> <tbody> <tr><td>Lubiący gotowaną marchewkę:</td><td> <?php echo(round($wyniki[0]/$suma * 100)); /*wyświetlenie zaokrąglonej procentowej ilości głosów, znak procenta jest w następnej linijce*/ ?> %</td><td> <img src="pasek.gif" alt="pasek.gif" title="Za marchewką!" height="10" width=" <?php echo(round($wyniki[0]/$suma * 100)); /*podobnie jak wcześniej, tyle, że wyświetlona liczba będzie szerokością graficznego paska, w tym wypadku liczba 100 jest maksymalną szerokością paska */ ?> " /></td></tr> <tr><td>Nienawidzący gotowanej marchewki:</td><td> <?php echo(round($wyniki[1]/$suma * 100)); ?> %</td><td> <img src="pasek.gif" alt="pasek.gif" title="Przeciw marchewce!" height="10" width=" <?php echo(round($wyniki[1]/$suma * 100)); ?> " /></td></tr> </tbody> </table> <p>Ogołem oddano głosów: <?php echo($suma); ?>.</p> wyniki.txt 0:0: link do strony ze skryptem Udostępnij ten post Link to postu Udostępnij na innych stronach
likufanele 77 Zgłoś post Napisano Wrzesień 11, 2015 DOPISZ.PHP <?PHP ++$tbl[$odp];/*zwiększamy o jeden iloć osób głosujšcych na danš odpowied*/ ?> register_globals... ++$tbl[$_POST['odp']]; Udostępnij ten post Link to postu Udostępnij na innych stronach
t9omek 0 Zgłoś post Napisano Wrzesień 14, 2015 a jak mogę zmienić typy radio na submit, kiedy to zrobiłem to nie zlicza mi głosów Udostępnij ten post Link to postu Udostępnij na innych stronach
likufanele 77 Zgłoś post Napisano Wrzesień 14, 2015 a jak mogę zmienić typy radio na submit, kiedy to zrobiłem to nie zlicza mi głosów Jaki konkretnie efekt chcesz uzyskać, bo twoje pytanie nie ma sensu... Udostępnij ten post Link to postu Udostępnij na innych stronach