sonda-v2

Publicado por luca 10/05/2005

[ Hits: 4.066 ]

Download sonda-v2.tar.gz




esse è um script php criado para sondagens em sitos web.
- nao ha limitacoes por numero de perguntas!
- se pode adicionar qualquer sondagem!
- se pode votar tambem para sondegens velhos!
- ainda nao esta implementado o controlo de votacao. (um usuario pode re-votar)!
- è free software!
foi criado para um meu amigo, agora è de todos! obrigado.
brainstabber (italy)

  



Esconder código-fonte

<!=====sonda-v2.php===============>
<html>
<head>
</head>
<body style="background: #6686c2; text-align: center; color: #e2f4fe ">


<?php

include "sonda-v2.conf.php";
/*=================================================================================*/
/*====================sonda-v2====distribuito sotto licenza gpl====================*/
/*====tutti i diritti rivendicati, melegnano maggio 2005, brainstabber [27e½]======*/
/*=================================================================================*/

/*=============script pagina==================*/   
$nomePagina="sonda-v2.php";

$racco= new raccoltaSondaggi();
$sonda=new sondaggio();

$racco->carica();



if($crea)
{
   $racco->aggiungi_sondaggio($idEnv,$domandaEnv,$opzioniEnv);
   $racco->salva();
}

if(empty($id))
{
   $id=$racco->get_ultimo();
}


$sonda->carica($id);

if($login)
{
   if($password==$passwordEnv&&$user==$userEnv)
   {
      echo "<div style=\" color:#e2f4fe; text-align:left; width: 500px; margin: 0 auto;  \">";
      echo "<br>autenticazione effettuata<br>";
      echo "<h3>creazione nuovo sondaggio</h3>";
      echo "<form method=post action=\"sonda-v2.php?crea=true\">";
      echo "<table>";
      echo "<tr><td>nome sondaggio:</td><td><input type=\"text\" name=\"idEnv\"></td></tr>";
      echo "<tr><td>domanda:</td><td><input type=\"text\" name=\"domandaEnv\"></td></tr>";
      echo "<tr><td>opzioni:</td><td><input type=\"text\" name=\"opzioniEnv\"></td></tr>";
      echo "<tr><td></td><td> <input type=\"submit\" name=\"crea\" value=\"invia\"> </td></tr>";                 
      echo "</table>";   
      echo "per inserire più opzioni separarle con \"&&\".<br>";
      echo "esempio: opzione_uno&&opzione_due&&opzione_tre";
      echo "</form></div>";
   }
   else
   {
   echo "<div style=\" color:#e2f4fe; text-align:left; width: 500px; margin: 0 auto;  \">";
   echo "<br><br><form method=post action=\"".$nomePagina."?login=true\">";
   echo "<table align=\"center\">";
   echo "<tr><td>nome utente:</td> <td><input type=\"text\" name=\"userEnv\"> </td></tr>";
   echo "<tr><td>password:</td><td> <input type=\"password\" name=\"passwordEnv\"> </td></tr>";
   echo "<tr><td></td><td><input type=\"submit\" name=\"logga\" value=\"invia\"> </td></tr>";
   echo "</table></form>";
   echo "</div>";
   }
}
else
{
if($vota)
{
   if(isset($risposta))
   {
      $sonda->incrementa($risposta);
      $sonda->salva($id);
      echo "<div style=\" color:#e2f4fe; text-align:left; width: 500px; margin: 0 auto;  \">";
      echo "<br><br>grazie per aver votato<br> <a href=\"".$nomePagina."?id=".$id."&&risultati=true\">visuliazza risultati</a>";
      echo "</div>";
   }
   else
   {
      echo "<br><br>devi scegliere un opzione prima di votare<br> <a href=\"".$nomePagina."?id=".$id."\">torna votare</a>";
   }
}
else
{
   if($risultati)
   {
      echo "<div style=\" color:#e2f4fe; text-align:left; width: 500px; margin: 0 auto;  \">";
      echo "<h2> risultati del sondaggio $id </h2>";
      echo $sonda->get_domanda();
      $sonda->stampa();
      
      echo "<a href=\"".$nomePagina."?id=".$id."\"> torna a votare</a><br><br>visualizza altri sondaggi";
      $vecchi=$racco->get_sondaggi($id);
      for($i=0;$i<count($vecchi); $i++)
      {
         echo "<a href=\"".$nomePagina."?id=".$vecchi[$i]."&&risultati=true\">".$vecchi[$i]."</a><br>";
      }
      
      echo "</div>";
   }
   else
   {
   
      echo "<div style=\"color:#e2f4fe; text-align:left; width: 400px; margin: 0 auto;\">";
      echo "<h2>sondaggio ".$id."</h2>";

      echo "<form method=post action=\"".$nomePagina."?id=".$id."\">".$sonda->get_domanda()."<br>";
      
      $elementi=$sonda->get_elementi();
      $vecchi=$racco->get_sondaggi($id);
      for($i=0;$i<count($elementi);$i++)
      {
         echo "<input type=\"radio\" name=\"risposta\" value=\"".$elementi[$i]."\">".$elementi[$i]." <br>";
      }
      echo ("
            <input type=\"submit\" name=\"vota\" value=\"invia\"> 

            </form>
            vecchi sondaggi:<br>");
      for($i=0;$i<count($vecchi); $i++)
      {
         echo "<a href=\"".$nomePagina."?id=".$vecchi[$i]."\">".$vecchi[$i]."</a><br>";
      }
      echo ("
            </div>
            <a href=\"".$nomePagina."?login=true\">nuovo sondaggio</a>
            ");
   }
}
}

/*==========fine script pagina================================*/


/*==============classe raccolta sondaggi====================*/
class raccoltaSondaggi
{
   var $sondaggi;
   
   function get_ultimo()
   {
      $ultimo=array_pop($this->sondaggi);
      $this->sondaggi[]=$ultimo;
      return $ultimo;
   }
   
   /* riceve id per eliminare il sondaggio corrente e restituire solo i mancanti! */
   function get_sondaggi($id)
   {
      for ($i=count($this->sondaggi);$i>=0;$i--)
      {
         if($this->sondaggi[$i]!=$id)
         {
            $elenco[]=$this->sondaggi[$i];
         }
      }
      return $elenco;
   }
   
   function aggiungi_sondaggio($id,$domanda,$opzioni)
   {
      $opzioni=explode("&&",$opzioni);
      
      $sonda=new sondaggio();
      $sonda->inserisci_domanda($domanda);
      
      for($i=0;$i<count($opzioni);$i++)
      {
         $sonda->inizializza_elemento($opzioni[$i]);
      }
      
      $sonda->salva($id);
      $this->sondaggi[]=$id;
   }
   function stampa()
   {
      for ($i=count($this->sondaggi);$i>=0;$i--)
      {
         echo $this->sondaggi[$i]."<br>";
      }
   }
   
   function salva()
   {
      $dati=implode("(&sep)",$this->sondaggi);
      $file=fopen("dati/sondaggi.list","w");
      fwrite($file,$dati);
      fclose($file);
   }
   
   function carica()
   {
      $dati=@file("dati/sondaggi.list");
      $dati=explode("(&sep)",$dati[0]);

      for ($i=0;$i<count($dati);$i++)
      {
         $this->sondaggi[]=$dati[$i];
      }
   }
}


/*==================classe sondaggio=================================*/
class sondaggio
   {
      var $domanda;
      var $elementi;
      var $numero;
      
      function inserisci_domanda($domanda)
      {
         $this->domanda=$domanda;
      }
      function get_domanda()
      {
         return $this->domanda;
      }
      function get_elementi()
      {
         return $this->elementi;
      }
      function get_numeri()
      {
         return $this->numeri;
      }
      
      function inizializza_elemento($elemento)
      {
         $this->elementi[]=$elemento;
         $this->numero[]=0;
      }
      
      function aggiungi($nome)
      {
         $this->elementi[]=$nome;
         $this->numero[]=1;
      }
      
      
      function incrementa($nome)
      {
         $dim=count($this->elementi);
         
         for ($i=0;$i<$dim;$i++)
         {
            if($this->elementi[$i]==$nome)
            {
            $pos=$i;
            break;
            }
         }
         
         if(isset($pos))
         {
            $this->numero[$pos]++;
         }
         else
         {
            $this->aggiungi($nome);
         }
      }
      
      function get_percentuali()
      {
         for($i=0;$i<count($this->elementi); $i++)
         {
            $somma=$somma+$this->numero[$i];
         }
         for($i=0;$i<count($this->elementi); $i++)
         {
            $percentuali[]=($this->numero[$i]/$somma)*100;
         }
         return $percentuali;
      }
      
      function stampa()
      {
         $percentuali=$this->get_percentuali();
         echo "<table cellpadding=3>";
         echo "<tr><td><b>risposte</b></td><td><b>voti</b></td><td><b>percentuali</b></td></tr>";
         for ($i=0; $i < count($this->elementi); $i++)
         {
            echo "<tr>";
            echo "<td>".$this->elementi[$i]."</td>";
            echo "<td align=\"center\">".$this->numero[$i]."</td>";
            echo "<td> <table height=\"15\"><tr><td bgcolor=\"#e2f4fe\" width=\"".$percentuali[$i]."\"></td><td></td></tr></table></td>";
            echo "<td>".(int)$percentuali[$i]."%</td>";
            echo "</tr>";
         }
         echo "</table>";
      }
      
      function stampa_elementi()
      {
         for($i=0;$i<count($this->elementi);$i++)
         {
            echo "<b>".$this->elementi[$i]."</b><br>";
         }
      }
      
      function stampa_numeri()
      {
         for($i=0;$i<count($this->numero);$i++)
         {
            echo "<b>".$this->numero[$i]."</b><br>";
         }
      }
      
      function salva($sondaggio)
      {
         for($i=0;$i<count($this->elementi);$i++)
         {
            $stringa[$i] = $this->elementi[$i]."=".$this->numero[$i];
         }
         $dati=$this->domanda."(&tit)".implode("(&sep)",$stringa);
         
         $file=fopen("dati/$sondaggio.dat","w");
         fwrite($file,$dati);
         fclose($file);
      }
      
      function carica($sondaggio)
      {
         $dati=@file("dati/$sondaggio.dat");
         $dati=explode("(&tit)",$dati[0]);
         $this->domanda=$dati[0];
         if($dati)
         {
            $stringhe=explode("(&sep)",$dati[1]);
            for($i=0;$i<count($stringhe);$i++)
            {
               $temp=explode("=",$stringhe[$i]);
               $this->elementi[]=$temp[0];
               $this->numero[]=$temp[1];
            }
            return true;
         }
         else
         {
            return false;
         }
      }
   }
   
?>

</body>
</html>




<!=======sonda-v2.conf.php===============>
<?php
/*=================================================================================*/
/*======configurazione sonda-v2===distribuito sotto licenza gpl====================*/
/*====tutti i diritti rivendicati, melegnano maggio 2005, brainstabber [27e½]======*/
/*=================================================================================*/
   $user=root;
   $password=root;
?>

Scripts recomendados

Send Mail em formato HTML

WAM Sistema de Notícias

Cotação do dólar direto do banco central

Bomba de E-mail em PHP

Contador


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts