Foros del Web » Programando para Internet » PHP »

Sistema de votos con IP!!

Estas en el tema de Sistema de votos con IP!! en el foro de PHP en Foros del Web. Hola amigos, Quisiera que me ayuden quiero hacer un sistema de votos, pero que funcione por Ip, es decir que solo un voto por IP ...
  #1 (permalink)  
Antiguo 15/04/2010, 19:24
 
Fecha de Ingreso: agosto-2009
Mensajes: 85
Antigüedad: 14 años, 8 meses
Puntos: 1
De acuerdo Sistema de votos con IP!!

Hola amigos, Quisiera que me ayuden quiero hacer un sistema de votos,
pero que funcione por Ip, es decir que solo un voto por IP no e logrado
encontrar un sistema asi no se si me podrian ayudar, por favor =)
Miren tengo un sistema algo sencillo =)
Y es muy facil pero quiero para que solo acepte un voto por ip
El codigo es lo siguiente:

Index.php
Código PHP:
<?
include("config.php"); //incluimos el fichero config.php donde tenemos la configuración del script
if(!file_exists($file)) //si el txt no existe...
    
{
    
$fp=fopen($file,"w"); //creamos un txt por si no tá creado
    
fputs($fp,"0\n0\n0\n0"); //le ponemos las respuestas desde 0
    
fclose($fp); //cerramos el txt
    
}


?>
<form method=POST action="ver.php">
    <input type="radio" name="En" value="E1" checked><? echo $c1;?><br>
    <input type="radio" name="En" value="E2"><? echo $c2;?><br>
    <input type="radio" name="En" value="E3"><? echo $c3;?><br>
    <input type="radio" name="En" value="E4"><? echo $c4;?><br><br>
    <input type="submit" value="Votar" name="Bot">
</form>
<p>
config.php
Código PHP:
<?
// CONFIGURACION DE LA ENCUESTA
$file="base.txt"//nombre del txt en el que guardaremos los resultados

//Escribe tus respuestas para la encuesta
$c1="Banda 1"//Encuesta nº 1
$c2="Banda 2"//Encuesta nº 2
$c3="Banda 3"//Encuesta nº 3
$c4="Banda 4"//Encuesta nº 4
?>
ver.php
Código PHP:
<?
include("config.php"); //incluimos el fichero config.php donde tenemos la configuración del script

$file2=file($file); //creamos el array con las lineas del archivo
$lineas=count($file2);//contamos los elementos del array, es decir el total de lineas
$n1=$file2[0]; //asignamos a la variable el nº de votos(la línea 1 del txt)
$n2=$file2[1]; //asignamos a la variable el nº de votos(la línea 2 del txt)
$n3=$file2[2]; //asignamos a la variable el nº de votos(la línea 3 del txt)
$n4=$file2[3]; //asignamos a la variable el nº de votos(la línea 4 del txt)


if($En=="E1"//si la respuesta es la opción 1...
{$nn1=intval($n1)+1;}else{$nn1=intval($n1);} //entonces sumamos uno a $nn1, si no, se keda igual
if($En=="E2"//si la respuesta es la opción ...
{$nn2=intval($n2)+1;}else{$nn2=intval($n2);} //entonces sumamos uno a $nn2, si no, se keda igual
if($En=="E3"//si la respuesta es la opción 3...
{$nn3=intval($n3)+1;}else{$nn3=intval($n3);} //entonces sumamos uno a $nn3, si no, se keda igual
if($En=="E4"//si la respuesta es la opción 4...
{$nn4=intval($n4)+1;}else{$nn4=intval($n4);} //entonces sumamos uno a $nn4, si no, se keda igual

    
$fp=fopen($file,"w+"); //abrimos de nuevo el txt borrándolo todo
    
fwrite($fp,"$nn1\n$nn2\n$nn3\n$nn4"); //escribimos en el txt los votos.. en su respectiva línea. NOTA: \n <- cambia de línea ;)
    
fclose($fp); //cerramos el txt

$ntotal=$nn1+$nn2+$nn3+$nn4//contamos el nº total de votos

?>

<table border=0 cellpadding=0 cellspacing=0 width=188>
  <tr>
    <td colspan=3 width=186><strong><font face=Arial>Resultados Encuesta</font></strong></td>
  </tr>
  <tr>
    <td width=46><font face=Arial><? echo $c1;?></font></td>
    <td width=101><table border=0 cellpadding=0 cellspacing=1 width=100
    bgcolor="#000000">
      <tr>
        <td><table border=0 cellpadding=0 cellspacing=0 width=<? echo $nn1*100/$ntotal;?> bgcolor=#FFFFFF
        height=5>
          <tr>
            <td></td>
          </tr>
        </table>
        </td>
      </tr>
    </table>
    </td>
    <td width=37><p align=center><font face=Arial size=2><? echo $nn1;?></font></td>
  </tr>
  <tr>
    <td width=46><font face=Arial><? echo $c2;?></font></td>
    <td width=101><table border=0 cellpadding=0 cellspacing=1 width=100%
    bgcolor=#000000>
      <tr>
        <td width=100%><table border=0 cellpadding=0 cellspacing=0 width=<? echo $nn2*100/$ntotal;?>
        bgcolor=#FFFFFF height=5>
          <tr>
            <td></td>
          </tr>
        </table>
        </td>
      </tr>
    </table>
    </td>
    <td width=37><p align=center><font face=Arial size=2><? echo $nn2;?></font></td>
  </tr>
  <tr>
    <td width=46><font face=Arial><? echo $c3;?></font></td>
    <td width=101><table border=0 cellpadding=0 cellspacing=1 width=100%
    bgcolor=#000000>
      <tr>
        <td width=100%><table border=0 cellpadding=0 cellspacing=0 width=<? echo $nn3*100/$ntotal;?>
        bgcolor=#FFFFFF height=5>
          <tr>
            <td></td>
          </tr>
        </table>
        </td>
      </tr>
    </table>
    </td>
    <td width=37><p align=center><font face=Arial size=2><? echo $nn3;?></font></td>
  </tr>
  <tr>
    <td width=46><font face=Arial><? echo $c4;?></font></td>
    <td width=101><table border=0 cellpadding=0 cellspacing=1 width=100%
    bgcolor=#000000>
      <tr>
        <td width=100%><table border=0 cellpadding=0 cellspacing=0 width=<? echo $nn4*100/$ntotal;?>
        bgcolor=#FFFFFF height=5>
          <tr>
            <td></td>
          </tr>
        </table>
        </td>
      </tr>
    </table>
    </td>
    <td width=37><p align=center><font face=Arial size=2><? echo $nn4;?></font></td>
  </tr>
  <tr>
    <td width=184 colspan=3><font face=Arial>Total encuesta: </font><font
    color=#004080 face=Arial size=2><strong><? echo $ntotal;?></strong></font></td>
  </tr>
</table>
Creo ver.php
No tiene que ver nada esat entre config.php e index.php
Entre esos dos no se como podria hacer para que solo permita un voto por IP.
Contesten si porfavor =)
  #2 (permalink)  
Antiguo 16/04/2010, 06:41
Avatar de mauroave  
Fecha de Ingreso: julio-2009
Mensajes: 50
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Sistema de votos con IP!!

Hola, mira, solo necesitas guardar en una tabla todas las ip que van entrando y van votando, entonces cuando entra una ip, te fijas si esta en la tabla. si existe en la tabla, entonces no lo dejas votar, sino, ingresas esa ip a la tabla, y asi suscesivamente.

con esto obtienes la ip

Código PHP:
$ip=$_SERVER["REMOTE_ADDR"]; 
saludos cordiales
  #3 (permalink)  
Antiguo 16/04/2010, 15:18
 
Fecha de Ingreso: agosto-2009
Mensajes: 85
Antigüedad: 14 años, 8 meses
Puntos: 1
De acuerdo Respuesta: Sistema de votos con IP!!

Cita:
Iniciado por mauroave Ver Mensaje
Hola, mira, solo necesitas guardar en una tabla todas las ip que van entrando y van votando, entonces cuando entra una ip, te fijas si esta en la tabla. si existe en la tabla, entonces no lo dejas votar, sino, ingresas esa ip a la tabla, y asi suscesivamente.

con esto obtienes la ip

Código PHP:
$ip=$_SERVER["REMOTE_ADDR"]; 
saludos cordiales
------------------------------------------------------------------------------
Hola!! muy buena tu idea, pero quiera que bloque el ip por ejemplo:
125.540.8002 ya voto.
No puede volver a votar asta que transcura un dia, seria mejor por que tu dices crear una tabla si sta perfecto tu ide, pero igual si votan starian votando kada segundo y al final de ver la la tabla de IP abra mucho botos no estarae contando cuantos ip son son validos, sose si podrias ayudarme =)
Se le agradece
  #4 (permalink)  
Antiguo 16/04/2010, 16:13
 
Fecha de Ingreso: abril-2010
Mensajes: 83
Antigüedad: 14 años
Puntos: 1
mira...para que lo queres hacer en php?? lo podes buscar en google... hay muchos... te recomiendo que hagas eso y no te compliques tanto... osea buscate uno por ip y despues editalo a tu gusto e insertalo en tu web... editalo con dreamweaver y despues insertalo...no te compliquees man :D

$ip=$_SERVER["REMOTE_ADDR"];

eso sirve para que el visitante vea su ip... a vos no te sirve de nada

Última edición por GatorV; 16/04/2010 a las 18:37
  #5 (permalink)  
Antiguo 16/04/2010, 16:44
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 20 años, 8 meses
Puntos: 105
Respuesta: Sistema de votos con IP!!

Con archivos de textos se te hara muy engorroso, mejor te recomiendo que uses bases de datos, y podras controlar con solo consultar en la tabla si esta la ip y listo, y como dice seba_100 usa la variable:

Código PHP:
Ver original
  1. $_SERVER["REMOTE_ADDR"];


Saludos
Gildus
__________________
.: Gildus :.
  #6 (permalink)  
Antiguo 17/04/2010, 06:55
 
Fecha de Ingreso: agosto-2009
Mensajes: 85
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: Sistema de votos con IP!!

Cita:
Iniciado por gildus Ver Mensaje
Con archivos de textos se te hara muy engorroso, mejor te recomiendo que uses bases de datos, y podras controlar con solo consultar en la tabla si esta la ip y listo, y como dice seba_100 usa la variable:

Código PHP:
Ver original
  1. $_SERVER["REMOTE_ADDR"];


Saludos
Gildus
Base
Código PHP:
CREATE TABLE `votos` (
  `
votosint(11NOT NULL,
  `
ipvarchar(20NOT NULL,
  
UNIQUE KEY `ip` (`ip`)

Index.php
Código PHP:
<? 
include("config.php"); //incluimos el fichero config.php donde tenemos la configuración del script 
if(!file_exists($file)) //si el txt no existe... 
    

    
$fp=fopen($file,"w"); //creamos un txt por si no tá creado 
    
fputs($fp,"0\n0\n0\n0"); //le ponemos las respuestas desde 0 
    
fclose($fp); //cerramos el txt 
    



?> 
<form method=POST action="ver.php"> 
    <input type="radio" name="En" value="E1" checked><? echo $c1;?><br> 
    <input type="radio" name="En" value="E2"><? echo $c2;?><br> 
    <input type="radio" name="En" value="E3"><? echo $c3;?><br> 
    <input type="radio" name="En" value="E4"><? echo $c4;?><br><br> 
    <input type="submit" value="Votar" name="Bot"> 
</form> 
<p>
Donde incerto:

Código PHP:
Ver original
  1. $_SERVER["REMOTE_ADDR"];

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:12.