Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

fekz

[Resolvido] Gravando o IP na BD

Recommended Posts

<!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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.