Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/08/2010, 09:02
Lba
 
Fecha de Ingreso: febrero-2004
Ubicación: Concepción
Mensajes: 156
Antigüedad: 20 años, 3 meses
Puntos: 0
Encuesta con IP

Estimados

Junto con saludarles les cuento mi problema

Esty desarrollando una encuesta con HTML, PHP Y MYSQL y quiero que el usuario vote una sola vez desde el PC.

Tengo dos tablas en mysql: Una tiene la encuesta y la otra el identificador de la encuesta y la ip, de tipo INT según lo que he leido.

El recuento de votos lo hace bien, pero la IP no la graba en la segunda tabla, no se si la tabla debe estar vacia o tener algo, la idea es que se vayan guardando todas las ip y cuando alguien vaya a votar se busque si para esa encuesta esa IP ya voto.

Este es parte del codigo que he ido modificando si alguien me puede echar una manito, coloque comentarios para guiar:

<?
//recibo el voto
$voto = $_POST["voto"];

//recibo el id de la encuesta
$encid = $_POST["encid"];

//obtiene la ip del usuario
$_SERVER['REMOTE_ADDR'];
$ip = $REMOTE_ADDR;
//Estoy usando este servidor de pruebas
$servidor="mysql16.000webhost.com";

$usuario="*******";
$password="*********";
$base="********";
$SQLid = mysql_connect($servidor,$usuario,$password);
mysql_select_db($base,$SQLid);
$SQLquery2 = "SELECT id, encip FROM direccion WHERE id='$encid'";
$SQLresult2 = mysql_query($SQLquery2,$SQLid) or die(mysql_error());
$SQLrow2 = mysql_fetch_array($SQLresult2);

//Aqui quiero preguntar si la IP ya existe, ESTARA BIEN?
if(@mysql_fetch_array($SQLresult2))
?>
<strong>USTED YA VOTO, SU IP ES: <? echo $ip ?> </strong>
<?

} else{
///USUARIO PUEDE VOTAR.

//aqui quiero insertar la IP, quieor usas funcion "inet_aton" para pasar IP a INT
$SQLquery3 = "INSERT INTO 'direccion' ('id', 'encip') VALUES('$encid','inet_aton('.$ip.')')";

//Esta bien usar $SQLResult3 y SQLrow3, o puedo usar las anteriores?
$SQLresult3 = mysql_query($SQLquery3,$SQLid);
$SQLrow3 = @mysql_fetch_array($SQLresult3);
?>

//Uso una tabla para ver lo que esta almacenando, pero no muestra nada.
<table width="50%" border="1">
<tr><td width="200"><? echo $SQLrow3["id"]?></td>
</tr>
<tr>
<td width="200"><? $SQLrow3["encip"]?></td>
</tr>
<tr>
<td width="200"><? $ip ?></td>
</tr>
</table>
<?

//ACTUALIZO LA TABLA DE LOS VOTOS , ESTO LO HACE BIEN!!
$SQLquery = "UPDATE encuesta SET encval$voto = encval$voto+1, enctot = enctot+1 where encid=$encid";
$SQLresult = mysql_query($SQLquery,$SQLid);
$SQLquery = "SELECT * FROM encuesta where encid=$encid";
$SQLresult = mysql_query($SQLquery,$SQLid);
$SQLrow = mysql_fetch_array($SQLresult);
?>

Lo que viene de codigo esta bien!!