Ir para conteúdo
Fórum Script Brasil
  • 0

Enquete


Guest - Carlos -

Pergunta

Guest - Carlos -

oi galera.

alguém poderia me ajudar , pegou um enquete pronto, no script brasil , mas ele mostra o resultado parcial , ,tudo ok..

eu gostaria de deixar que uma pessoa somente pudesse votar uma vez,

e também de mostrar a quantidade de pessoas que votaram será que teria como ???

Att:Carlos

<?

//alterado por Gladiador

//designer e algumas funcionalidades

?>

<HTML>

<HEAD>

<TITLE>Enquete</TITLE>

</head>

<body topmargin="0">

<LINK REL="StyleSheet" HREF="style.css" TYPE="text/css">

<center>

<table width="207" border="0" align="center" cellpadding="0" cellspacing="1">

<tr>

<td width="205" height="18" align="center" valign="middle" background="enquete/b1.jpg" bgcolor="#FFFFFF"><font color="#FFFFFF" size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>ENQUETE</strong></font></td>

</tr>

<tr>

<td bgcolor="#EEEEEE">

<div align="center">

<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong><strong></strong></font><strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif">K

6 acham do Site <br>

PHPC&oacute;digo Aberto</font> </strong>

<form name="enquete" method="post" action="enquete/enquete_resultado.php" >

<table width="400%" border="0" align="center" cellpadding="0" cellspacing="0">

<tr>

<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">

<input type="radio" name="escolha" value="1">

1 - &Oacute;timo</font></td>

</tr>

<tr>

<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">

<input type="radio" name="escolha" value="2">

2 - Bom</font></td>

</tr>

<tr>

<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">

<input type="radio" name="escolha" value="3">

3 - Regular</font></td>

</table><br>

<input type="submit" name="Submit" value="&gt;&gt;Votar">

<input type="submit" name="Submit" value="&gt;&gt; Parcial ">

<input type="hidden" name="arq" value="enquete_portal.txt">

<input name="opcoes" type="hidden" id="opcoes" value="3">

</form>

</div></td>

</tr>

</table>

<table width="208" height="18" border="0" align="center" cellpadding="0" cellspacing="1">

<tr>

<td width="206" height="18" align="center" valign="middle" background="enquete/b2.jpg" bgcolor="#FFFFFF"></td>

</tr>

</table>

<p>&nbsp;</p>

</body>

</html>

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

<?

//Alterado por Gladiador

//Designer e algumas funcionalidades

?>

<html>

<head>

<title>enquete</title>

</head>

<body topmargin="0">

<LINK REL="StyleSheet" HREF="style.css" TYPE="text/css">

<table width="100%" border="0" cellspacing="0" cellpadding="0">

<tr>

<td align="center"><strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Resultado

Parcial <br>

PHPC&oacute;digo Aberto</font></strong></td>

</tr>

<tr>

<td align="center">

<br></td>

</tr>

<tr>

<td align="center"><img src="star.gif" width="15" height="14"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong>&Oacute;timo&nbsp;&nbsp;<img src="star2.gif" width="15" height="14">

Bom <br>

<img src="star3.gif" width="15" height="14"></strong></font><strong><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Regular</font></strong><br></td>

</tr>

</table><br>

<table width="222" align="center" cellpadding="0" cellspacing="0">

<tr>

<td width="220"><img src="b1.jpg" width="220" height="18"></td>

</tr>

</table>

<table width="219" border="1" align="center" cellpadding="0" cellspacing="1" bordercolor="#000000">

<tr>

<td width="213">

<?

$file=$arq;

if (!file_exists($file)){ // cria se o arquivo que grava os valores ainda não existe

$f = fopen($file,'w+');

fputs($f,substr(str_repeat("0-", $opcoes),0,-1)); // grava os valores iniciais como 0 sem o ultimo -

fclose($f);

}

$f = file($file); // Ler o arquivo inteiro e poe em uma array

$voto = explode("-", $f[0]); // explode somente a 1a. linha pertenccente a array 0

$voto[$escolha-1] = $voto[$escolha-1] +1; // soma o voto ao valor q encontra-se armazenado

// Monta a forma de gravacao do votos ate o momento dependendo de $opcoes

for ($i = 0; $i < $opcoes; $i++) {

$acumulado .= $voto[$i].'-'; //monta a sequencia para gravacao Ex.: 1-2-3-9

$tl_votos += $voto[$i]; // Soma o total de votos entre todos para mostrar gráfico

}

// Mostra o gráfico

for ($i = 0; $i < $opcoes; $i++) {

if ($tl_votos != 0) $percentual = round($voto[$i]*100/$tl_votos);

echo ($i+1).': <img src="'.$i.'.gif" height=13 width ='.$percentual*2 .' > '.$percentual.'%<br>'; // mostra a barra com percentual

}

$acumulado = substr($acumulado,0,-1);

// Grava os valores somados

$f = fopen($file,'w+');

fputs($f,$acumulado);

fclose($f);

?>

</td>

</tr>

</table>

<table width="222" align="center" cellpadding="0" cellspacing="0">

<tr>

<td width="220"><img src="b2.jpg" width="220" height="19"></td>

</tr>

</table>

<div align="center"><BR><CENTER>

<a href="../enquete.php">RETORNAR</A> </div>

</body>

</html>

Link para o comentário
Compartilhar em outros sites

13 respostass a esta questão

Posts Recomendados

  • 0

Está variavel retorna o número geral de votantes "$tl_votos", agora para você impedir para que não se vote uma vez a mais você pode gravar em "cookies" setado para o tempo desejado ai faça uma condição para variavél do cookie, se você não souber utilizar o cookie poste que alguém ou eu te ajudaremos. wink.gif

Link para o comentário
Compartilhar em outros sites

  • 0

isso!

eu não vi bem seu código, mas seria assim a implementação do cookie:

if(!$cookieenq) {

$ip = getenv("Remote_Addr");

setcookie('cookieenq',$ip, time()+600);

..comando que adiciona o voto...

} else {

echo "você já votou";

}

sendo que o time()+600 significa que o cookie irá expirar em 10min. e depois desse tempo o usuário vai poder votar novamente. você pode mudar esse tempo pra quanto quiser.

qualquer coisa posta ai!

Link para o comentário
Compartilhar em outros sites

  • 0

olha eu fiz o seguinte:

<?

if(!$cookieenq){

$ip=getenv("REMOTE_ADDR");

setcookie('cookieenq',$ip,time()+600);

$tl_votos;

}else{

echo ("vc ");

}

$file=$arq;

if (!file_exists($file)){ // cria se o arquivo que grava os valores ainda não existe

$f = fopen($file,'w+');

fputs($f,substr(str_repeat("0-", $opcoes),0,-1)); // grava os valores iniciais como 0 sem o ultimo -

fclose($f);

}

$f = file($file); // Ler o arquivo inteiro e poe em uma array

$voto = explode("-", $f[0]); // explode somente a 1a. linha pertenccente a array 0

$voto[$escolha-1] = $voto[$escolha-1] +1; // soma o voto ao valor q encontra-se armazenado

// Monta a forma de gravacao do votos ate o momento dependendo de $opcoes

for ($i = 0; $i < $opcoes; $i++) {

$acumulado .= $voto[$i].'-'; //monta a sequencia para gravacao Ex.: 1-2-3-9

$tl_votos += $voto[$i]; // Soma o total de votos entre todos para mostrar gráfico

}

// Mostra o gráfico

for ($i = 0; $i < $opcoes; $i++) {

if ($tl_votos != 0) $percentual = round($voto[$i]*100/$tl_votos);

echo ($i+1).': <img src="'.$i.'.gif" height=13 width ='.$percentual*2 .' > '.$percentual.'%<br>'; // mostra a barra com percentual

}

$acumulado = substr($acumulado,0,-1);

// Grava os valores somados

$f = fopen($file,'w+');

fputs($f,$acumulado);

fclose($f);

?>

e casou este erro .

Warning: Cannot modify header information - headers already sent by (output started at /usr/home/bellotti/public_html/enquetes/enquete/enquete_resultado.php:15) in /usr/home/bellotti/public_html/enquetes/enquete/enquete_resultado.php on line 38

o que esta causando este erro ??

Link para o comentário
Compartilhar em outros sites

  • 0

quanto ao erro não sei bem, mas você fez o contrário do que eu te disse:

<?

if(!$cookieenq){

$ip=getenv("REMOTE_ADDR");

setcookie('cookieenq',$ip,time()+600);

...

isso significa que o cookie ainda não foi criado e portanto o usuário não votou, então aqui você tem que por o código que aumenta um voto pra opção da enquete e no else colocar o $tl_votos. senão o usuário só vai poder votar depois que o cookie foi criado.

Link para o comentário
Compartilhar em outros sites

  • 0

Seria assim ..não entendi muito bem ..(sou meio burrinho em php )

<?

if(!$cookieenq){

$ip=getenv("REMOTE_ADDR");

setcookie('cookieenq',$ip,time()+600);

aqui vai oque

}else{

echo ("$tl_votos");

}

Link para o comentário
Compartilhar em outros sites

  • 0

no lugar que você colocou aqui vai o q, você coloca o comando que soma o voto...

os selects sql e td mais você pode colocar antes dessa verificação do cookie, a única coisa mesmo que você tem que por nessa verificação é se vai adicionar um voto ou se só vai mostrar o resultado

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,2k
×
×
  • Criar Novo...