Foros del Web » Programando para Internet » PHP »

Restringir votar 2 veces sin bbdd

Estas en el tema de Restringir votar 2 veces sin bbdd en el foro de PHP en Foros del Web. Buenos dias a todos. El caso es que tengo una pequeña web, en la que tengo una pequeña encuesta en php que graba los datos ...
  #1 (permalink)  
Antiguo 16/07/2008, 02:52
 
Fecha de Ingreso: enero-2008
Mensajes: 73
Antigüedad: 16 años, 3 meses
Puntos: 2
Restringir votar 2 veces sin bbdd

Buenos dias a todos. El caso es que tengo una pequeña web, en la que tengo una pequeña encuesta en php que graba los datos en un txt. (sin base de datos). Lo que me gustaría hacer es que la gente no pudiera votar dos veces. Todo esto me gustaría hacerlo pero sin crear ninguna base de datos ni na. Solo en php. ¿se puede hacer?

Muchas gracias de antemano
  #2 (permalink)  
Antiguo 16/07/2008, 02:57
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 5 meses
Puntos: 48
Respuesta: Restringir votar 2 veces sin bbdd

Por poder, si se puede. Solo tienes que sustituir las funciones de base de datos por las de acceso a ficheros y tener en cuenta todo el tema de bloqueos, etc.

Realmente eso es lo que hace SQLite, usar ficheros normales en lugar de un servidor de base de datos. Mira si tu PHP tiene esa extension, te ahorrara problemas.
  #3 (permalink)  
Antiguo 16/07/2008, 04:42
Avatar de desendoll  
Fecha de Ingreso: mayo-2008
Mensajes: 340
Antigüedad: 15 años, 11 meses
Puntos: 3
Respuesta: Restringir votar 2 veces sin bbdd

Si tu web tiene usuarios creados, puedes prohibir que un usuario vote dos veces en una encuesta, sino, lo que puedes hacer es crear una cookie, aunque es fácil saltárselo.

Mejoraría guardando la IP del voto, pero me parece que fallaría con IP dinámicas....
__________________
Francesc Jimenez
  #4 (permalink)  
Antiguo 16/07/2008, 05:04
 
Fecha de Ingreso: julio-2008
Ubicación: Neuquen
Mensajes: 143
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: Restringir votar 2 veces sin bbdd

Si se puede, debes colocar en tu plantilla php 2 scripts, 1 que almacene ips y otro para que almacene cookies. Si no lo sabes hacer te explico.

Es cierto lo que dice desendoll, pero si le agregas cookies lo solucionas

Saludos.
  #5 (permalink)  
Antiguo 16/07/2008, 06:09
Avatar de JoniJnm  
Fecha de Ingreso: mayo-2007
Ubicación: Madrid
Mensajes: 264
Antigüedad: 16 años, 11 meses
Puntos: 4
Respuesta: Restringir votar 2 veces sin bbdd

Pero reinicias el router (para cambiar de IP), borras los cookies y ya puedes.

Como no tenga usuarios en la web y ponga los username en el txt... Aunque también se puede crear un nuevo usuario quien quiera amañar la encuesta jajaja


Saludos!
  #6 (permalink)  
Antiguo 16/07/2008, 06:20
Avatar de desendoll  
Fecha de Ingreso: mayo-2008
Mensajes: 340
Antigüedad: 15 años, 11 meses
Puntos: 3
Respuesta: Restringir votar 2 veces sin bbdd

De echo es el problema que tienen megaupload, rapidshare o muchos otros servicios, si reinicias el router y borras las cookies no te reconoce nadie.
__________________
Francesc Jimenez
  #7 (permalink)  
Antiguo 16/07/2008, 07:31
 
Fecha de Ingreso: enero-2008
Mensajes: 73
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: Restringir votar 2 veces sin bbdd

El caso es que yo tengo 3 archivos php. En el primero tengo la encuesta
Código PHP:
<table width="364" border="0" align="center" bordercolor="#000000" bgcolor="#CCCCCC">
  <tr>
    <td colspan="2"><div align="center"><span class="Estilo30 Estilo35">&iquest;Ir&aacute;s a la playa? </span></div></td>
  </tr>
  <tr>
    <td width="233"><span class="Estilo30">
      <?
include("config.php"); //incluimos el fichero config.php donde tenemos la configuraci&oacute;n del script
if(!file_exists($file)) //si el txt no existe...
    
{
    
$fp=fopen($file,"w"); //creamos un txt por si no t&aacute; creado
    
fputs($fp,"0\n0\n0\n0"); //le ponemos las respuestas desde 0
    
fclose($fp); //cerramos el txt
    
}


?>
    </span></td>
    <td width="121">&nbsp;</td>
  </tr>
  <tr>
    <td height="63" colspan="2"><form method="post" action="enc_ver.php">
      <blockquote>
        <blockquote>
          <p>
            <input name="En" type="radio" value="E1" />
            <? echo $c1;?><br />
            <input type="radio" name="En" value="E2" />
            <? echo $c2;?><br />
            <input type="radio" name="En" value="E3" />
            <? echo $c3;?><br />
          </p>
          <blockquote>
            <blockquote>
              <p align="left">
                <input type="submit" value="Votar" name="Bot2" />
              </p>
            </blockquote>
          </blockquote>
        </blockquote>
      </blockquote>
    </form></td>
  </tr>
  <tr>
    <td height="17" colspan="2" align="center" valign="top" bgcolor="#003366"><div align="right" class="Estilo37"><a href="enc_ver.php">Ver resultados</a> </div></td>
  </tr>
</table>
En otro tengo las opciones:
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="Si"//Encuesta nº 1
$c2="No lo sé"//Encuesta nº 2
$c3="No"//Encuesta nº 3
?>
y en el otro tengo los resultados:
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

?>
        </p>
          <table width=479 height="254" border=0 align="center" cellpadding=0 cellspacing=0>
            <tr>
              <td colspan=3 width=186><div align="center" class="Estilo27 Estilo34">Resultados de la encuesta</div></td>
            </tr>
            <tr>
              <td width=186><font face=Arial><? echo $c1;?></font></td>
              <td width=186><table border=0 cellpadding=0 cellspacing=1 width=67
    bgcolor="#000080">
                <tr>
                  <td width=100%><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=186><p align=center><font face=Arial size=2><? echo $nn1;?></font></p></td>
            </tr>
            <tr>
              <td width=186><font face=Arial><? echo $c2;?></font></td>
              <td width=186><table width=41% height="9" border=0 cellpadding=0 cellspacing=1
    bgcolor=#000080>
                <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=186><p align=center><font face=Arial size=2><? echo $nn2;?></font></p></td>
            </tr>
            <tr>
              <td width=186><font face=Arial><? echo $c3;?></font></td>
              <td width=186><table border=0 cellpadding=0 cellspacing=1 width=40%
    bgcolor=#000080>
                  <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=186><p align=center><font face=Arial size=2><? echo $nn3;?></font></p></td>
            </tr>
            
            <tr>
              <td width=186 colspan=3><div align="center"><span class="Estilo14 Estilo27 Estilo35">Votaciones totales </span><font face=Arial>: </font><font
    color=#FFFFFF face=Arial size=2><strong><? echo $ntotal;?></strong></font></div></td>
            </tr>
          </table>
No hay ninguna funcion que se le pueda añadir para que no se pueda votar mas de una vez??

Gracias denuevo
  #8 (permalink)  
Antiguo 16/07/2008, 07:35
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: Restringir votar 2 veces sin bbdd

Almacena la Dirección Ip en el archivo así nunca mas volverán a votar.. a menos que tu elimines las ip. manualmente. osea (limpies)
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.
  #9 (permalink)  
Antiguo 16/07/2008, 08:23
 
Fecha de Ingreso: enero-2008
Mensajes: 73
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: Restringir votar 2 veces sin bbdd

Gracias eddwinpaz, pero no tengo ni idea como se hace eso...
  #10 (permalink)  
Antiguo 16/07/2008, 09:17
Avatar de desendoll  
Fecha de Ingreso: mayo-2008
Mensajes: 340
Antigüedad: 15 años, 11 meses
Puntos: 3
Respuesta: Restringir votar 2 veces sin bbdd

obtener la ip --> $_SERVER['REMOTE_ADDR'] ;

Pero tendrás el mismo problema con IP dinámicas (cuando reinicien el router podrán volver a votar)
__________________
Francesc Jimenez
  #11 (permalink)  
Antiguo 16/07/2008, 09:20
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: Restringir votar 2 veces sin bbdd

Cita:
Iniciado por desendoll Ver Mensaje
obtener la ip --> $_SERVER['REMOTE_ADDR'] ;

Pero tendrás el mismo problema con IP dinámicas (cuando reinicien el router podrán volver a votar)

Es menos probable... que suceda eso.. en mi pais Venezuela dejan la la Ip hasta por 3 meses con el mismo numero por mas que le des un ipconfig /release y nuevamente ipconfig /renew *Con* este seguiria manteniendo su misma Ip..
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.
  #12 (permalink)  
Antiguo 16/07/2008, 09:24
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: Restringir votar 2 veces sin bbdd

yo opino que blokeando la IP impide votar 2 veces.. otra manera es que tenga el usuario registrado y este salve el Id del usuario y no le deje votar 2 veces :P
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.
  #13 (permalink)  
Antiguo 16/07/2008, 09:26
Avatar de JoniJnm  
Fecha de Ingreso: mayo-2007
Ubicación: Madrid
Mensajes: 264
Antigüedad: 16 años, 11 meses
Puntos: 4
Respuesta: Restringir votar 2 veces sin bbdd

Cita:
en mi pais Venezuela dejan la la Ip hasta por 3 meses
Pero eso dependerá de la compañía, no?

Yo por lo menos apago y enciendo el router y tengo una nueva.
  #14 (permalink)  
Antiguo 16/07/2008, 09:37
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: Restringir votar 2 veces sin bbdd

Bueno en realidad cada ISP tiene su modo de emplear el uso de sus servicios. Pero como hay que adaptarse a la situación.. estoy tratando de buscar una solución.
La mas optima en este Caso es Usar Emails xD... que pida una confirmación por correo electrónico y confirme su voto.. ( esto agotara hasta el spammer mas fanatico ) y pues se usa el blokeo de Ip y correo a la misma vez..
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.
  #15 (permalink)  
Antiguo 16/07/2008, 09:38
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: Restringir votar 2 veces sin bbdd

esto si el voto es demasiado importante.. y tiene mucha relevancia en sus resultados.
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.
  #16 (permalink)  
Antiguo 16/07/2008, 09:43
Avatar de desendoll  
Fecha de Ingreso: mayo-2008
Mensajes: 340
Antigüedad: 15 años, 11 meses
Puntos: 3
Respuesta: Restringir votar 2 veces sin bbdd

si tiene varias cuentas de correo y Ip dinámica estamos en lo mismo... y todos sabemos de webs que el correo solo dura un par de horas para hacer este tipo de registros...

Y en el caso de limitar por ip, en una red local de un ceiber cafe, wirless de un pueblo, universidades.... si vota una persona ya nadie mas podrá votar.

A ver si al final encontramos la solución....
__________________
Francesc Jimenez
  #17 (permalink)  
Antiguo 16/07/2008, 09:46
 
Fecha de Ingreso: enero-2008
Mensajes: 73
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: Restringir votar 2 veces sin bbdd

La encuesta no es muy importante, por lo que eso no me preocupa tanto. Pero donde pongo $_SERVER['REMOTE_ADDR'] ; ?, en que archivo?? Con eso solo ya está?
  #18 (permalink)  
Antiguo 16/07/2008, 09:51
Avatar de JoniJnm  
Fecha de Ingreso: mayo-2007
Ubicación: Madrid
Mensajes: 264
Antigüedad: 16 años, 11 meses
Puntos: 4
Respuesta: Restringir votar 2 veces sin bbdd

Cita:
Iniciado por desendoll Ver Mensaje
A ver si al final encontramos la solución....
Y se lo decimos a rapidshare. Como no hagas que te enseñen el DNI en mano... La mejor forma que yo conozco, y la ya dicha, es guardando un cookie y la IP. Aunque si la encuesta es muy seria, lo del correo más lo anterior es mejor.

Podías también hacer que sólo voten los registrados antes de hoy (por si hay alguien que se hace mil usuarios en tu web).

Aunque... Como sabes, la IP da la latitud y altitud, aunque no sé cómo se coge, puedes hacer que si no hay 100 metros de diferencia (el margen de error) que no pueda votar :D


Lo de $_SERVER['REMOTE_ADDR'] tienes que ponerlo así, directamente, es la IP. La guardas en un archivo, comparas si está la del usuario en el archivo, sino el voto vale.
  #19 (permalink)  
Antiguo 16/07/2008, 10:04
Avatar de JoniJnm  
Fecha de Ingreso: mayo-2007
Ubicación: Madrid
Mensajes: 264
Antigüedad: 16 años, 11 meses
Puntos: 4
Respuesta: Restringir votar 2 veces sin bbdd

Código PHP:
$ip $_SERVER['REMOTE_ADDR'];

$file "ip.txt";
if(!
file_exists($file)) {
    
$fp=fopen($file,"w"); 
    
fputs($fp,""); 
    
fclose($fp); 


$file2=file($file); 
for (
$i=0;$i<count($file2);$i++) {
    if (
$ip == $file2[$i]) { die ("S&oacute;lo puedes votar una vez"); }
}

$fp=fopen($file,"w+"); 
fwrite($fp,implode("\n",$file2)."\n".$ip;
fclose($fp); ?> 
Después va
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

.....
  #20 (permalink)  
Antiguo 16/07/2008, 10:33
 
Fecha de Ingreso: enero-2008
Mensajes: 73
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: Restringir votar 2 veces sin bbdd

Gracias por la respuesta JoniJnm, pero no me funciona. Seguramente esté haciendo algo mal xq nisikiera puede ver la encuesta. Lo puse en el archivo donde puse la encuesta. Queda así:
Código PHP:
   <?
$ip 
$_SERVER['REMOTE_ADDR'];

$file "ip.txt";
if(!
file_exists($file)) {
    
$fp=fopen($file,"w"); 
    
fputs($fp,""); 
    
fclose($fp); 


$file2=file($file); 
for (
$i=0;$i<count($file2);$i++) {
    if (
$ip == $file2[$i]) { die ("S&oacute;lo puedes votar una vez"); }
}

$fp=fopen($file,"w+"); 
fwrite($fp,implode("\n",$file2)."\n".$ip;
fclose($fp);
    }


?>
 <?
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
    
}


?>
  #21 (permalink)  
Antiguo 16/07/2008, 11:24
Avatar de JoniJnm  
Fecha de Ingreso: mayo-2007
Ubicación: Madrid
Mensajes: 264
Antigüedad: 16 años, 11 meses
Puntos: 4
Respuesta: Restringir votar 2 veces sin bbdd

Falta un parentesis:

fwrite($fp,implode("\n",$file2)."\n".$ip);

Y sobra un corchete:

fclose($fp);
}

Código PHP:
<?php

$ip 
$_SERVER['REMOTE_ADDR'];

$file3 "ip.txt";
if(!
file_exists($file3)) {
    
$fp3=fopen($file3,"w"); 
    
fputs($fp3,""); 
    
fclose($fp3); 


$file4=file($file3); 
for (
$i=0;$i<count($file4);$i++) {
    if (
$ip == $file4[$i]) { die ("S&oacute;lo puedes votar una vez"); }
}

$fp3=fopen($file3,"w+"); 
fwrite($fp3,implode("\n",$file4)."\n".$ip);
fclose($fp3); 

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

?>
        </p>
          <table width=479 height="254" border=0 align="center" cellpadding=0 cellspacing=0>
            <tr>
              <td colspan=3 width=186><div align="center" class="Estilo27 Estilo34">Resultados de la encuesta</div></td>
            </tr>
            <tr>
              <td width=186><font face=Arial><? echo $c1;?></font></td>
              <td width=186><table border=0 cellpadding=0 cellspacing=1 width=67
    bgcolor="#000080">
                <tr>
                  <td width=100%><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=186><p align=center><font face=Arial size=2><? echo $nn1;?></font></p></td>
            </tr>
            <tr>
              <td width=186><font face=Arial><? echo $c2;?></font></td>
              <td width=186><table width=41% height="9" border=0 cellpadding=0 cellspacing=1
    bgcolor=#000080>
                <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=186><p align=center><font face=Arial size=2><? echo $nn2;?></font></p></td>
            </tr>
            <tr>
              <td width=186><font face=Arial><? echo $c3;?></font></td>
              <td width=186><table border=0 cellpadding=0 cellspacing=1 width=40%
    bgcolor=#000080>
                  <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=186><p align=center><font face=Arial size=2><? echo $nn3;?></font></p></td>
            </tr>
            
            <tr>
              <td width=186 colspan=3><div align="center"><span class="Estilo14 Estilo27 Estilo35">Votaciones totales </span><font face=Arial>: </font><font
    color=#FFFFFF face=Arial size=2><strong><? echo $ntotal;?></strong></font></div></td>
            </tr>
          </table>

Última edición por JoniJnm; 16/07/2008 a las 11:33
  #22 (permalink)  
Antiguo 17/07/2008, 12:34
 
Fecha de Ingreso: enero-2008
Mensajes: 73
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: Restringir votar 2 veces sin bbdd

Muchas gracias JoniJnm. Ya me funciona a la perfeccion!
  #23 (permalink)  
Antiguo 18/07/2008, 11:36
 
Fecha de Ingreso: enero-2008
Mensajes: 73
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: Restringir votar 2 veces sin bbdd

He encontrado un problema a esto. Y es que para que se vean los resultados, le tengo un vinculo en el que puedes ver los resultados sin votar, pero con esto de la ip, la gente que ya voto, ya no puede ver como van los resultados de la encuesta.
Alguna sugerencia?
  #24 (permalink)  
Antiguo 18/07/2008, 19:28
Avatar de JoniJnm  
Fecha de Ingreso: mayo-2007
Ubicación: Madrid
Mensajes: 264
Antigüedad: 16 años, 11 meses
Puntos: 4
Respuesta: Restringir votar 2 veces sin bbdd

O pones en el formulario un imput (donde se vota) por ejemplo así:

<input type="hidden" name="votar" value="1">

Y luego en el archivo esto:

Código PHP:
   <?
if ($_GET['votar']) {
$ip $_SERVER['REMOTE_ADDR'];

$file "ip.txt";
if(!
file_exists($file)) {
    
$fp=fopen($file,"w"); 
    
fputs($fp,""); 
    
fclose($fp); 


$file2=file($file); 
for (
$i=0;$i<count($file2);$i++) {
    if (
$ip == $file2[$i]) { die ("S&oacute;lo puedes votar una vez"); }
}

$fp=fopen($file,"w+"); 
fwrite($fp,implode("\n",$file2)."\n".$ip;
fclose($fp);
    }

}
?>
 <?
//se supone que aquí también tendría que estar lo de:
if ($_GET['votar']) { 

    include(
"config.php"); //incluimos el fichero config.php donde tenemos la configuración del script
    
ect

}
O cambias el enlace para ver los votos, que sea así: tu_archivo.php?ver_votos=1

Y escribes el código de arriba con $_GET['ver_votos']
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 21:03.