Rafael Rocha B. Postado Dezembro 13, 2009 Denunciar Share Postado Dezembro 13, 2009 Olá pessoal, Estou com dois probleminhas, se alguém poder me dar uma luz:1° - Construi uma enquete pra por na minha página, sendo que toda vez que aperto F5 pra atualizar a página a enquete é atualizada mesmo sem eu clicar no botão enviar.Alguém sabe como faço pra corrigir isso??HTML -<form action="valida.php" method="post"><input type="radio" name="OTIMO" value="OTIMO">Ótimo<input type="radio" name="BOM" value="BOM">Bom<input type="radio" name="RAZOAVEL" value="RAZOAVEL">Razoável<input type="submit" name="operacao" value="Enviar" /><input type="hidden" name="operacao" value="enviar" /></form>PHP - valida.php<?php$otimo = $_POST['OTIMO'];$bom = $_POST['BOM'];$razoavel = $_POST['RAZOAVEL'];$operacao = $_POST['operacao']; if ($operacao == "enviar") { require "conexao.php";$sql = "INSERT INTO media (otimo, bom, razoavel) VALUE ('$otimo', '$bom', '$razoavel')";$qr = mysql_query($sql) or die (mysql_error());$sql = "SELECT COUNT( * ) as Total FROM media";$resultSet = mysql_query($sql, $conexao);$result = mysql_fetch_array($resultSet);$total = $result[0];echo "Número total de votos: $total";echo "<br />";/*MÉDIA DE ÓTIMO*/$sql = "SELECT COUNT( * ) as Total FROM media WHERE otimo = 'OTIMO'";$resultSet = mysql_query($sql, $conexao);$result = mysql_fetch_array($resultSet);$media_otimo = $result[0] / $total * 100;echo "<br />";$media_otimo_exibir = intval(number_format($media_otimo,2,".",""));echo "Ótimo: $media_otimo_exibir%";....?> 2° - Queria limitar os votos da enquete por IP, por exemplo, se a pessoa com o IP x votou hoje ele não poderá mais votar hoje. Só preciso de um caminho pessoal, só uma luz, que dai me esforço pra conseguir. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Gusmao silva Postado Dezembro 14, 2009 Denunciar Share Postado Dezembro 14, 2009 tente essa video aula de um conhecido meu... http://vimeo.com/7212614 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 jissa Postado Dezembro 14, 2009 Denunciar Share Postado Dezembro 14, 2009 o autorefresh tem uma opção que pode colocar no header tipo<meta http-equiv="Refresh" content="60"> vai atualizar a pagina a cada 60 segundos.. sem em segundos, pode colocar o tempo que quiser de uma pesquisada em AJAX ou poste esta em JS o pessoal lá pode ter outras soluçõeso IP já é PHP$REMOTE_ADDR retorna o IP do visitantesó colocar ele e sempre verificar quando votar..voce pode verificar antes do voto, se achar o IP só mostra o resultadolembre que a maioria dos IP´s são dinamicos, então se uma pessoa desligar o modem e ligar novamente vai pegar outro IP e vai poder votar, ou mesmo usarem proxy para mascarar o IP de uma olhada emhttp://www.php.net/manual/pt_BR/reserved.v...bles.server.phpvai achar mais funções que podem ajudar voce Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rafael Rocha B. Postado Dezembro 15, 2009 Autor Denunciar Share Postado Dezembro 15, 2009 Opa galera, valeu mesmo pela força. Depois das dicas acho que vou fazer isso:1° Em relação ao IP, capturo o ip da pessoa que vai votar, armazeno no banco de dados e se ela tentar votar novamente não vai conseguir, beleza. Mas queria saber se existe a possibilidade de 24 em 24 horas o banco de dados que armazena os ip's ser zerado, da pra fazer isso com php???2° em relação a atualização da página a dica do <meta http-equiv="Refresh" content="60"> foi ótima, estava tentando fazer com JavaScript e pelo fato de ser iniante não tava dando certo, enfim, valeu pela força pessoal! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 jissa Postado Dezembro 15, 2009 Denunciar Share Postado Dezembro 15, 2009 para apagar de tempo em tempo voce pode criar um script que de um comando do mysql 'truncate table' como faz os select , ele limpa todo o conteudo da tabelae colocar este script no cronjob (agendador de tarefas) de seu servidor para ser executado a cada 24hssomente coloque ele no cron se já tiver testado e funcionando certo, para colocar se não souber entre em contato com o suporte, teste antes quando Ok pergunte a eles para colocar para funcionar Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Rafael Rocha B.
Olá pessoal,
Estou com dois probleminhas, se alguém poder me dar uma luz:
1° - Construi uma enquete pra por na minha página, sendo que toda vez que aperto F5 pra atualizar a página a enquete é atualizada mesmo sem eu clicar no botão enviar.
Alguém sabe como faço pra corrigir isso??
HTML -
<form action="valida.php" method="post">
<input type="radio" name="OTIMO" value="OTIMO">Ótimo
<input type="radio" name="BOM" value="BOM">Bom
<input type="radio" name="RAZOAVEL" value="RAZOAVEL">Razoável
<input type="submit" name="operacao" value="Enviar" />
<input type="hidden" name="operacao" value="enviar" />
</form>
PHP - valida.php
<?php
$otimo = $_POST['OTIMO'];
$bom = $_POST['BOM'];
$razoavel = $_POST['RAZOAVEL'];
$operacao = $_POST['operacao'];
if ($operacao == "enviar") {
require "conexao.php";
$sql = "INSERT INTO media (otimo, bom, razoavel) VALUE ('$otimo', '$bom', '$razoavel')";
$qr = mysql_query($sql) or die (mysql_error());
$sql = "SELECT COUNT( * ) as Total FROM media";
$resultSet = mysql_query($sql, $conexao);
$result = mysql_fetch_array($resultSet);
$total = $result[0];
echo "Número total de votos: $total";
echo "<br />";
/*MÉDIA DE ÓTIMO*/
$sql = "SELECT COUNT( * ) as Total FROM media WHERE otimo = 'OTIMO'";
$resultSet = mysql_query($sql, $conexao);
$result = mysql_fetch_array($resultSet);
$media_otimo = $result[0] / $total * 100;
echo "<br />";
$media_otimo_exibir = intval(number_format($media_otimo,2,".",""));
echo "Ótimo: $media_otimo_exibir%";
....
?>
2° - Queria limitar os votos da enquete por IP, por exemplo, se a pessoa com o IP x votou hoje ele não poderá mais votar hoje.
Só preciso de um caminho pessoal, só uma luz, que dai me esforço pra conseguir.
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
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.