Categorias

Enquete utilizando aquivo texto

Neste código será apresentando uma simples enquete utilizando arquivo texto.

Vamos fazer uso do array() e de um arquivo texto chamado vota.txt que vai armazenar a contagem dos votos.

Importante: Crie uma imagem qualquer que será colocada na tela de resultados da enquete pra dar aquele visual de estatísticas. Grave ela na pasta figuras com o nome (vote_middle.gif).

Arquivo: admin_enquete.php 
Esse é o arquivo de configuração da nossa enquete 
 
//Arquivo de configuração da enquete 
$arquivo_texto = "vota.txt"; //Arquivo que contém a soma das respostas 
$questao = "O que você acha do conteúdo do iMasters ?"; //Questão da enquete 
$opcoes = array("Ótimo","Bom","Regular","Ruim"); //Escolhas 

$img_porc = "c:paginaenquetejuliofiguras"; //Diretório onde está a imagem da estatística do resultado. 
?> 


Arquivo: index.php 
Arquivo principal que é o responsável pela soma dos resultados e a apresentação da enquete. 
 
require "admin_enquete.php"; // Arquivo de configuração da enquete 

if(! $votar && ! $resultados) { /*Mostra a enquete*/ 
echo "
"; echo ""; echo ""; while(list($key,$val)=each($opcoes)) { echo ""; }//fecha while que mostra as opções de respostas echo ""; echo ""; echo ""; } //fecha a mostra da enquete else { //Mostra os resultados / Grava a resposta do usuário $arquivo_array = file($arquivo_texto); //lê o arquivo e armazena num array if($resposta < count($opcoes) && $votar) { // Grava a resposta $veia_resp = $arquivo_array[$resposta]; $veia_resp = preg_replace("/nr*/","",$veia_resp); //Executa uma busca $arquivo_array[$resposta] = ($veia_resp + 1)."n"; $arquivo = join('',$arquivo_array); //Agrupa elementos de um array em uma string - mesmo que implode() $fp = fopen($arquivo_texto,"w"); //Abre o arquivo texto flock($fp,1); // Bloqueio manual do arquivo fputs($fp,$arquivo); //Grava no arquivo flock($fp,3); // Bloqueio manual do arquivo fclose($fp); //Fecha o ponteiro do arquivo }//fecha if -> grava a resposta while(list($key,$val) = each($arquivo_array)) { //Soma o total de votos $total += $val; }//fecha while -> soma total de votos //Exibe o resultado da enquete echo "Resultados:"; echo "
$questao
$val
"; echo ""; while(list($key,$val)=each($opcoes)) { //Lista os resultados $porc = $arquivo_array[$key] * 100 / $total; $porc_int = floor($porc); $porc_float = number_format($porc,1); //formata o número $tp += $porc_float; echo ""; echo ""; echo ""; } //fecha while -> resultados }//fecha else com os resultados / grava resposta ?> Esta aí na sua enquete pronta e funcional. Essa enquete está simples, tem muito detalhes a serem acertados como por exemplo impedir que o usuário vote mais de uma vez nela. Para solucionar esse problema, basta fazermos uso de um cookie, mais isso vou deixar a cargo de vocês.
QuestõesPorcentagemVotos
$opcoes[$key]"; echo "$porc_float%$arquivo_array[$key]