Fred Jader Desenvolvedor web desde os 12 anos, Frederico Jader hoje em dia atua como diretor de arte e administrador de portais em geral, tendo como mais novo projeto o site www.gamesnahora.com
Vamos lá:
Arquivo: admin_enquete.php
Esse é o arquivo de configuração da nossa enquete
//Arquivo de configuração da enquete
//Arquivo que contém a soma das resposta
$arquivo_texto = "vota.txt"; s
//Questão da enquete
$questao = "O que você acha do conteúdo do OnMasters ?";
//Escolhas
$opcoes = array("Ótimo","Bom","Regular","Ruim");
//Diretório onde está a imagem da estatística do resultado.
$img_porc = "c:paginaenquetejuliofiguras";
Arquivo: index.php
Arquivo principal que é o responsável pela soma dos resultados e a apresentação da enquete.
<?
// Arquivo de configuração da enquete
require "admin_enquete.php";
if(! $votar && ! $resultados) { /*Mostra a enquete*/
echo "<form name='enquete' method='post'>";
echo "<table width='100%' border='0'>";
echo "<tr><td>$questao</td></tr>";
while(list($key,$val)=each($opcoes)) {
echo "<tr><td><input type='radio'
name='resposta' value='$key'>$val</td></tr>";
}//fecha while que mostra as opções de respostas
echo "<tr><td><input type='submit'
name='votar' value='Votar >>'></td></tr>";
echo "<tr><td><input type='submit'
name='resultados' value='Resultados >>'></td></tr>";
echo "</form>";
} //fecha a mostra da enquete
else { //Mostra os resultados
//lê o arquivo e armazena num array
$arquivo_array = file($arquivo_texto);
// Grava a resposta
if($resposta < count($opcoes) && $votar) {
$veia_resp = $arquivo_array[$resposta];
//Executa uma busca
$veia_resp = preg_replace("/nr*/","",$veia_resp);
$arquivo_array[$resposta] = ($veia_resp + 1)."n";
//Agrupa elementos de um array
$arquivo = join('',$arquivo_array);
$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
//Soma o total de votos
while(list($key,$val) = each($arquivo_array)) {
$total += $val;
}//fecha while -> soma total de votos
//Exibe o resultado da enquete
echo "Resultados:";
echo "<table cellpading=1 cellspacing=2 border=0>";
echo "<tr><th>Questões</th>
<th>Porcentagem</th><th>Votos</th></tr>";
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 "<tr><td>$opcoes[$key]</td>";
echo "<td><img height='9' width='$porc_int'
src='$img_porc/vote_middle.gif'>";
echo "$porc_float%</td>";
echo "<td>$arquivo_array[$key]</td></tr>";
} //fecha while -> resultados
}//fecha else com os resultados / grava resposta
?>
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).
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.
Sei, que vendo pela primeira parece ser complicado, mais não é. Estou preparando um artigo que mostra como fazermos manipulação em arquivos textos. Aí com certeza vocês entenderão melhor. Futuramente estarei disponibilizando um artigo mais completo mostrando como fazer um Sistema de enquete baseado no banco de dados MySQL com sistema Administrativo e tudo mais.
Enquanto isso não deixem de acessar meu site de jogos!
Aguardem!