Will1102 0 Denunciar post Postado Novembro 1, 2013 Olá pessoal! Sou novo aqui no fórum e sou novo como programador também. A minha dúvida é bem simples, porém não consegui achar uma resposta em lugar nenhum. Criei um formulário de votação. Tem 27 concorrentes. Conectei com o banco de dados. Até aí funcionou direitinho. Porém, o IP não vai pro banco de dado. Os id e os votos são adicionados, mas sem o IP não tem como eu fazer com que alguém vote somente uma vez. Será que poderiam me ajudar? Desde já agradeço... Compartilhar este post Link para o post Compartilhar em outros sites
Rogério Santana 172 Denunciar post Postado Novembro 1, 2013 Como você está capturando o IP? Compartilhar este post Link para o post Compartilhar em outros sites
Will1102 0 Denunciar post Postado Novembro 1, 2013 dessa forma: $_SERVER['REMOTE_ADDR']; Mas eu não sei a função (if) pra fazer com que apareça uma mensagem "você já deu o seu voto" caso já contenha o IP no banco de dados. Compartilhar este post Link para o post Compartilhar em outros sites
Rogério Santana 172 Denunciar post Postado Novembro 1, 2013 Entendo, mas se você não salva o IP no banco de dados, para você fazer uma verificação, mesmo que não eficaz, use cookies Compartilhar este post Link para o post Compartilhar em outros sites
vinaspsy 2 Denunciar post Postado Novembro 1, 2013 Tente fazer uma função para pegar o ip como essa (OBS: Eu uso essa funcão e funciona perfeitamente) : function getIP() { $ip; if (getenv("HTTP_CLIENT_IP")) $ip = getenv("HTTP_CLIENT_IP"); else if(getenv("HTTP_X_FORWARDED_FOR")) $ip = getenv("HTTP_X_FORWARDED_FOR"); else if(getenv("REMOTE_ADDR")) $ip = getenv("REMOTE_ADDR"); else $ip = "DESCONHECIDO"; return $ip; } Compartilhar este post Link para o post Compartilhar em outros sites
Will1102 0 Denunciar post Postado Novembro 1, 2013 Entendi Rogério. Desculpe a ignorância, como disse sou bem novo em programação. Eu estive pesquisando melhor esse assunto e pelo que eu vi, se eu fizer uma restrição por IP isso faria com que somente uma pessoa na mesma casa com a mesma rede ou em uma lan house conseguisse dar o seu voto. O melhor seria mesmo filtrar por cookies. Mas eu não tenho a menor idéia de como fazer isso por cookies. E nesse caso, se a pessoa apagar o histórico, isso não possibilitaria a pessoa de dar novamente o seu voto??? Compartilhar este post Link para o post Compartilhar em outros sites
Rogério Santana 172 Denunciar post Postado Novembro 2, 2013 Sim, se limpar os cookies poderia votar novamente, mas também se mudar o IP poderá votar várias vezes. Como é uma votação aberta, fica não se tem meios 100% eficazes, pelo menos que eu conheça. Compartilhar este post Link para o post Compartilhar em outros sites
Will1102 0 Denunciar post Postado Novembro 4, 2013 E como eu faço essa restrição por cookies??? Compartilhar este post Link para o post Compartilhar em outros sites
Leco RP 6 Denunciar post Postado Novembro 4, 2013 Will1102, Uma forma rápida e simples, seria você criar um cookie com o IP sem expiração e verificar se esse cookie existe. Você pode salvar o nome do cookie como sendo o próprio IP. Lembrando que seria uma forma BEM simples. Se tiver dúvidas de como criar um cookie, aqui tem um explicação bem legal: http://blog.thiagobelem.net/trabalhando-com-cookies-no-php/ Abraços Compartilhar este post Link para o post Compartilhar em outros sites
paulinhosupriano 103 Denunciar post Postado Novembro 4, 2013 Se tem a quantidade exata de pessoas para votar. poderia criar um usuario e senha particular para cada e um campo de status_voltou que por padrão e n ou seja não e quando a pessoa logar e ao click no tipo do voto o status e atualizado para 's' e o voto +=1, com uma mensagem caso o usuário tente votar novamente. Com isso seria 100% protegido. Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Tubino Borges 0 Denunciar post Postado Novembro 4, 2013 Isso me fez pensar em algo.To precisando também de um sistema de votação, publico onde quero que uma pessoa só vote uma vez.Eu usei todas alternativas, mas bastava limpar os cookies e pronto, podia votar.E se usar o curtir do facebook, sera que daria? Por ex:A pessoa vota na opção que prefere clicando no curtir, e vc pega o numero de clikes e armazena no seu banco.Desta forma a pessoa só consegue votar uma vez, e ainda divulga no facebook. Compartilhar este post Link para o post Compartilhar em outros sites
Will1102 0 Denunciar post Postado Novembro 12, 2013 Eu consegui fazer uma restrição por cookie. Porém, agora eu não consigo enviar pro meu banco de dados o valor email. Segue o código. O que está errado??? Lembrando também que o "Resultado" aparece na mesma página assim que eu voto... <?php $servidor = "?????????????"; $usuario = "???????????"; $senha = "??????????"; $bd = "?????????"; $conexao = mysql_connect($servidor, $usuario, $senha) or die ("Erro ao realizar a conexão"); $seleciona = mysql_select_db($bd); setcookie('enquete_php'); if (isset($_COOKIE['enquete_php'])) { exit ('<p>Você já votou nesta enquete.</p>'.$_COOKIE['enquete_php']); } $nome = $_POST ['nome']; $email = $_POST['email']; $query = mysql_query("INSERT INTO votos2 (email) VALUES ('$email')"); $voto = $_POST ['debutante']; if($voto <> "") { $query = mysql_query("INSERT INTO votos2 (voto) VALUES ('$voto')"); } $valor1 = mysql_query("SELECT * FROM votos2 WHERE voto=1"); $valor2 = mysql_query("SELECT * FROM votos2 WHERE voto=2"); $valor3 = mysql_query("SELECT * FROM votos2 WHERE voto=3"); $valor4 = mysql_query("SELECT * FROM votos2 WHERE voto=4"); $valor5 = mysql_query("SELECT * FROM votos2 WHERE voto=5"); $valor6 = mysql_query("SELECT * FROM votos2 WHERE voto=6"); $valor7 = mysql_query("SELECT * FROM votos2 WHERE voto=7"); $valor8 = mysql_query("SELECT * FROM votos2 WHERE voto=8"); $valor9 = mysql_query("SELECT * FROM votos2 WHERE voto=9"); $valor10 = mysql_query("SELECT * FROM votos2 WHERE voto=10"); $valor11 = mysql_query("SELECT * FROM votos2 WHERE voto=11"); $valor12 = mysql_query("SELECT * FROM votos2 WHERE voto=12"); $valor13 = mysql_query("SELECT * FROM votos2 WHERE voto=13"); $valor14 = mysql_query("SELECT * FROM votos2 WHERE voto=14"); $valor15 = mysql_query("SELECT * FROM votos2 WHERE voto=15"); $valor16 = mysql_query("SELECT * FROM votos2 WHERE voto=16"); $valor17 = mysql_query("SELECT * FROM votos2 WHERE voto=17"); $valor18 = mysql_query("SELECT * FROM votos2 WHERE voto=18"); $valor19 = mysql_query("SELECT * FROM votos2 WHERE voto=19"); $valor20 = mysql_query("SELECT * FROM votos2 WHERE voto=20"); $valor21 = mysql_query("SELECT * FROM votos2 WHERE voto=21"); $valor22 = mysql_query("SELECT * FROM votos2 WHERE voto=22"); $valor23 = mysql_query("SELECT * FROM votos2 WHERE voto=23"); $valor24 = mysql_query("SELECT * FROM votos2 WHERE voto=24"); $valor25 = mysql_query("SELECT * FROM votos2 WHERE voto=25"); $valor26 = mysql_query("SELECT * FROM votos2 WHERE voto=26"); $valor27 = mysql_query("SELECT * FROM votos2 WHERE voto=27"); ?> Compartilhar este post Link para o post Compartilhar em outros sites