Loading:

Książka Zend Framework 3. Poradnik Programisty.

Ankieta - dane w pliku tekstowym

Skrypt tworzy ankietę.

Do działania potrzebuje pliku colors.data wystarczy go utworzyć i dać prawa 777



Napisz Artykuł

Listing


//Formularz umożliwiający oddawanie głosu ankieta.html ####

<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
<TITLE>Głosowanie</TITLE>
</HEAD>
<BODY>
<CENTER>
<H2>Jaki jest Twój ulubiony kolor?</H2>
<FORM METHOD="post" ACTION="ankieta.php">
<TABLE>
  <TR>
    <TD>czerwony</TD>
    <TD>
      <INPUT TYPE="radio" NAME="vote" VALUE="czerwony">
    </TD>
  </TR>
  <TR>
    <TD>zielony</TD>
    <TD>
      <INPUT TYPE="radio" NAME="vote" VALUE="zielony">
    <TD>
  </TR>
  <TR>
    <TD>niebieski</TD>
    <TD>
      <INPUT TYPE="radio" NAME="vote" VALUE="niebieski">
    <TD>
  </TR>
  <TR>
    <TD>fioletowy</TD>
    <TD>
      <INPUT TYPE="radio" NAME="vote" VALUE="fioletowy">
    <TD>
  </TR>
  <TR>
    <TD>czarny</TD>
    <TD>
      <INPUT TYPE="radio" NAME="vote" VALUE="czarny">
    <TD>
  </TR>
</TABLE>
<BR>
<INPUT TYPE="submit" VALUE="Głosuj">
</FORM>
</CENTER>
</BODY>
</HTML>



//Skrypt PHP przetwarzający dane z ankiety ankieta.php ##########


<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
<TITLE>Wyniki głosowania</TITLE>
</HEAD>
<BODY>
<CENTER>
<H2>Wyniki głosowania</H2>
<?PHP

function printResults()
{

  if(isSet($_POST["vote"])){
    $color = $_POST["vote"];
  }
  else{
    $color = "";
  }

  if($color == ""){
    echo("Proszę zaznaczyć jeden z kolorów.");
    return;
  }

  if(file_exists("colors.data")){
    if(($fp = fopen("colors.data", "r+")) === false)
      return;
  }
  else{
    if(($fp = fopen("colors.data", "a+")) === false)
    return;
  }

  $czerwony = intval(fgets($fp));
  $zielony = intval(fgets($fp));
  $niebieski = intval(fgets($fp));
  $fioletowy = intval(fgets($fp));
  $czarny = intval(fgets($fp));

  switch($color){
    case "czerwony":$czerwony++;break;
    case "zielony":$zielony++;break;
    case "niebieski":$niebieski++;break;
    case "fioletowy":$fioletowy++;break;
    case "czarny":$czarny++;break;
    default: echo("Ooops, Chyba mamy błąd w skrypcie...");return;
  }
  fseek($fp, 0);
  fputs($fp, $czerwony."\r\n");
  fputs($fp, $zielony."\r\n");
  fputs($fp, $niebieski."\r\n");
  fputs($fp, $fioletowy."\r\n");
  fputs($fp, $czarny."\r\n");
  fclose($fp);

  $votes_no = $czerwony + $zielony + $niebieski + $fioletowy + $czarny;

  $czerwony_nazwa = "czerwony";
  $niebieski_nazwa = "niebieski";
  $zielony_nazwa = "zielony";
  $fioletowy_nazwa = "fioletowy";
  $czarny_nazwa = "czarny";

  $czerwony_proc = sprintf("%.2f", $czerwony * 100 / $votes_no);
  $zielony_proc = sprintf("%.2f", $zielony * 100 / $votes_no);
  $niebieski_proc = sprintf("%.2f", $niebieski * 100 / $votes_no);
  $fioletowy_proc = sprintf("%.2f", $fioletowy * 100 / $votes_no);
  $czarny_proc = sprintf("%.2f", $czarny * 100 / $votes_no);
  echo("<TABLE border='1'>");

  $kolor_nazwa = "Nazwa koloru";
  $ile_glosow = "Liczba głosów";
  $proc_glosow = "Procent głosów";
  include("color_tab_row.inc");
  echo("$code");

  $kolor_nazwa = $czerwony_nazwa;
  $ile_glosow = $czerwony;
  $proc_glosow = $czerwony_proc;
  include("color_tab_row.inc");
  echo("$code");

  $kolor_nazwa = $zielony_nazwa;
  $ile_glosow = $zielony;
  $proc_glosow = $zielony_proc;
  include("color_tab_row.inc");
  echo("$code");

  $kolor_nazwa = $niebieski_nazwa;
  $ile_glosow = $niebieski;
  $proc_glosow = $niebieski_proc;
  include("color_tab_row.inc");
  echo("$code");

  $kolor_nazwa = $fioletowy_nazwa;
  $ile_glosow = $fioletowy;
  $proc_glosow = $fioletowy_proc;
  include("color_tab_row.inc");
  echo("$code");

  $kolor_nazwa = $czarny_nazwa;
  $ile_glosow = $czarny;
  $proc_glosow = $czarny_proc;
  include("color_tab_row.inc");
  echo("$code");

  echo("</TABLE>");
}
printResults();
?>
</CENTER>
</BODY>
</HTML>


//Szablon tworzący wiersze tabeli color_tab_row.inc ###########

<?PHP
$code = <<<CODE
<|!REG3XP0!><TR>
<TD>$kolor_nazwa</TD>
<TD>$ile_glosow</TD>
<TD>$proc_glosow</TD>
</TR>|>
CODE;
?>
 


Ten wpis posiada swój wątek na forum

Wszystkie pytania prosimy kierować właśnie tam ponieważ komentarze to miejsce na poprawki do kodu lub alternatywne rozwiązania i pytania nie będą publikowane

http://forum.funkcje.net/forum/viewtopic.php?f=2&t=2646

Dane do logowania na forum są takie same jak na funkcje.net



Dodano przez: igor
Ranga: Administrator serwisu Punktów: 28716
Komentarze użytkowników
Dobra ankieta :P
autor: dsds121 | 12757 | 2012-02-19 18:26:39


    • Treść komentarza
      Kod do komentarza (opcjonalnie)
      PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
      Autor
      Token
      token

       

       








funkcje.net
Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-17 v.1.5 | design: diviXdesign & rainbowcolors