fekz 0 Denunciar post Postado Janeiro 23, 2009 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Untitled Document</title> </head> <body> <?php include("banco.php"); $opcao = $_POST["enq"]; $idenq = $_POST["idenq"]; $ip2 = $_SERVER['REMOTE_ADDR']; // IP2 MOSTRA O IP ATUAL $buscas = "SELECT ip FROM ip"; $busca = mysql_query($buscas); while($linha = mysql_fetch_array($busca)){ $ip = $linha["ip"]; // MOSTRA OS IPS CADASTRADOS NO BANCO echo "IP cadastrado no banco é: $ip <br>"; echo "IP atual é: $ip2 <br><br>"; if($ip2 == $ip){ echo "<script>alert(\"VOCE JA VOTOU!\")</script>"; } else{ echo "<script>alert('VOCE NAO VOTOU')</script>"; $insereip = mysql_query("INSERT INTO ip (ip) VALUES ('$ip2')") or die(mysql_error()); } } $insere = mysql_query("INSERT INTO voto (idenq, opcao) VALUES ('$idenq', '$opcao')") or die(mysql_error()); ?> </body> </html> Gente, criei esse script pra gravar no BD apenas o IP de usuarios que ainda nao foram gravados... beleza, so que como no comeco eu nao tenho nenhum ip ele acaba nao entrando no WHILE, e nao grava nenhum... como posso resolver ess problema?? obrigado Compartilhar este post Link para o post Compartilhar em outros sites
Renato Siroma 2 Denunciar post Postado Janeiro 23, 2009 Adicione um cadastro de IP manualmente.. ou crie este arquivo e entre nele =D. <? include("banco.php"); $query = "INSERT INTO ip (ip) VALUES ('1.1.0.1')"; if(mysql_query($query)){ echo "<script type=\"text/javascript\">self.close();</script>"; }else{ echo "erro"; } ?> Compartilhar este post Link para o post Compartilhar em outros sites
fekz 0 Denunciar post Postado Janeiro 23, 2009 Nao adianta adicionar manualmente, porque a cada dia o IP tem que zerar a tabela de ip, pra pessoa poder votar novamente... tem que ser algo mais funcional. Compartilhar este post Link para o post Compartilhar em outros sites
Renato Siroma 2 Denunciar post Postado Janeiro 23, 2009 Ata. pensei que não era para gravar todos os dias.. rsrs /************** * changelog 2009-01-21 * Adicionado IF linha 17 * Veirificação de existe algum registro no banco de dados. * Caso não exista ele insere o primeiro registro do dia. * * * Adicionado If Linha 24. * Caso o IP atual seje Igual a um IP já gravado ele é exibido dentro das tags <big><b> **************/ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Untitled Document</title> </head> <body> <?php include("banco.php"); $zero=0; $opcao = $_POST["enq"]; $idenq = $_POST["idenq"]; $ip2 = $_SERVER['REMOTE_ADDR']; // IP2 MOSTRA O IP ATUAL $buscas = "SELECT ip FROM ip"; $busca = mysql_query($buscas); if(mysql_num_rows($busca)==0)$zero=1; while($linha = mysql_fetch_array($busca)){ $ip = $linha["ip"]; // MOSTRA OS IPS CADASTRADOS NO BANCO if($ip==$ip2){$bold="<b><big>"; $endbold="</big></b>";} echo $bold."IP cadastrado no banco é: $ip".$endbold." <br>"; if($ip2 == $ip){ echo "<script>alert(\"VOCE JA VOTOU!\")</script>"; }else{ echo "<script>alert('VOCE NAO VOTOU')</script>"; $insereip = mysql_query("INSERT INTO ip (ip) VALUES ('$ip2')") or die(mysql_error()); } } if($zero==1){ echo "<script>alert('VOCE NAO VOTOU')</script>"; $insereip = mysql_query("INSERT INTO ip (ip) VALUES ('$ip2')") or die(mysql_error()); } $insere = mysql_query("INSERT INTO voto (idenq, opcao) VALUES ('$idenq', '$opcao')") or die(mysql_error()); ?> </body> </html> Testa ai =D Cara você deu WHILE e listava todos os IPs Existentes Seguidos do IP atual.. Compartilhar este post Link para o post Compartilhar em outros sites
fekz 0 Denunciar post Postado Janeiro 24, 2009 Cara acho que deu certo... qual a diferença de por $ip == $ip2 e $ip2 == $ip? Acho que está correto, por enquanto, obrigado. Alguém pode tirar o RESOLVIDO ?? tenho outra dúvida... Aquilo que eu tinha pedido deu certo... porém eu quero pegar o ip pra fazer a verificação apenas das linhas da tabela em que o ID da enquete = O id do IP... pra ele poder votar em outras enquetes, mas não na mesma... está assim: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Untitled Document</title> </head> <body> <?php include("banco.php"); $zero=0; $opcao = $_POST["enq"]; $idenq = $_POST["idenq"]; $ip2 = $_SERVER['REMOTE_ADDR']; // IP2 MOSTRA O IP ATUAL $buscas = "SELECT 'ip' FROM ip I JOIN enquete E ON I.idenq = e.id WHERE I.idenq=" . $idenq; $busca = mysql_query($buscas); if(mysql_num_rows($busca)==0){ $zero=1;} while($linha = mysql_fetch_array($busca)){ $ip = $linha["ip"]; // MOSTRA OS IPS CADASTRADOS NO BANCO if($ip2 == $ip){ echo "<script>alert(\"VOCE JA VOTOU!\")</script>"; } else{ echo "<script>alert('VOCE NAO VOTOU')</script>"; $insereip = mysql_query("INSERT INTO ip (ip) VALUES ('$ip2')") or die(mysql_error()); $insere = mysql_query("INSERT INTO voto (idenq, opcao) VALUES ('$idenq', '$opcao')") or die( mysql_error()); } } if($zero==1){ echo "<script>alert('VOCE NAO VOTOU')</script>"; $insereip = mysql_query("INSERT INTO ip (ip) VALUES ('$ip2')") or die(mysql_error()); $insere = mysql_query("INSERT INTO voto (idenq, opcao) VALUES ('$idenq', '$opcao')") or die(mysql_error()); } /* FIM DE INSERIR NO BANCO */ $sql = "SELECT * FROM voto V JOIN enquete E ON V.idenq = E.id WHERE V.idenq=".$idenq; $buscas = mysql_query($sql); while ($linha = mysql_fetch_array($buscas)){ $voto = $linha["opcao"]; $id = $linha["idenq"]; echo $voto . "<br>"; echo $id . "<br><br>"; } ?> </body> </html> Nessa linha está o erro: $buscas = "SELECT 'ip' FROM ip I JOIN enquete E ON I.idenq = e.id WHERE I.idenq=" . $idenq; Estou tentando falar pra pegar só o IP da onde o idenq for = o id da tabela enquete, pra ele poder votar em outras enquetes tbm, mas acho que fiz algo errado. Alguém me ajuda?? Compartilhar este post Link para o post Compartilhar em outros sites