Foros del Web » Programando para Internet » PHP »

Investigación con problemas deteccion IP

Estas en el tema de Investigación con problemas deteccion IP en el foro de PHP en Foros del Web. Señores: Solicito su colaboración para la revisión del siguient script de una encuesta, el cual solo permite registrar un solo voto y una sola dirección ...
  #1 (permalink)  
Antiguo 27/08/2009, 08:40
 
Fecha de Ingreso: agosto-2009
Mensajes: 39
Antigüedad: 15 años, 3 meses
Puntos: 0
Exclamación Investigación con problemas deteccion IP

Señores:

Solicito su colaboración para la revisión del siguient script de una encuesta, el cual solo permite registrar un solo voto y una sola dirección IP.

Se han enumerado las sentencias para dar una mejor explicación del error

Código PHP:
1.  extract($_SERVER);
2.  function check($REMOTE_ADDR) {
3.  include('config.php');
4.  global $valid;
5.  $ip=$REMOTE_ADDR;
6.  $data=file("$ip_file");
7.  $now=time();
8.  foreach ($data as $record) {
9.  $subdata=explode("][",$record);
10. if ($now < ($subdata[1]+3600*$timeout)) {
11. if ($ip == $subdata[0]) {  
12. $valid=0;  
13. break;  
14. }}}} 
Cuando eliminio del script las sentencias 11 y 12 graba los votos y las IP de los participantes, pero no valida la IP, es decir, una misma persona puede votar más de una misma vez en la encuesta, lo cual en la investigación que deseo iniciar no es correcto.

Agradezco su generosidad al compartir conocimiento. Gracias de antemano por sus respuestas y sugerencias

J. Didier
  #2 (permalink)  
Antiguo 27/08/2009, 08:55
 
Fecha de Ingreso: agosto-2009
Mensajes: 39
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Investigación con problemas deteccion IP

Señores:

Olvidé incluir la primera parte del script. Ofresco disculpas

Cita:
1. function record($REMOTE_ADDR) {
2. include('config.php');
3. $fp=fopen("$ip_file", "a+");
4. fputs ($fp,$REMOTE_ADDR."][".time()."\r\n"); //tira hacia abajo ip
5. fclose($fp);
6. }
  #3 (permalink)  
Antiguo 27/08/2009, 08:57
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Investigación con problemas deteccion IP

Como esta grabado en el archivo de texto la información.

Edito:
Escribiste como grabas la informacion mientras escribia este mensaje.

Edito de nuevo:
De esta forma yo no veo que tengas problemas.
Código php:
Ver original
  1. function check($REMOTE_ADDR){
  2.     include('config.php');
  3.     global $valid;
  4.     $data=file("ip.txt");
  5.     $now=time();
  6.     foreach ($data as $record) {
  7.         $subdata=explode("][",$record);
  8.         if ($now < ($subdata[1]+(3600*24)) && $REMOTE_ADDR == $subdata[0]) {
  9.             $valid=0;
  10.             echo "Aqui debe ir cuando el ip esta guardado y hay menos de 24 horas";
  11.             break;
  12.         }
  13.     }
  14. }
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Última edición por abimaelrc; 27/08/2009 a las 09:16
  #4 (permalink)  
Antiguo 27/08/2009, 10:28
 
Fecha de Ingreso: agosto-2009
Mensajes: 39
Antigüedad: 15 años, 3 meses
Puntos: 0
Exclamación

Abigmael... he seguido sus instrucciones y, revisando en dos PC conectados a Internet, cuando se entra a la página no permite votación alguna; muestra los resultados de la encuesta.

NOTA: en mi localhost, sus instrucciones fueron exitosas.

Qué puede ser?

Por qué cuando quito las instrucciones ya referidas, si funciona el script?

Gracias de nuevo

Abimaelrc:

Cita:
echo "Aqui debe ir cuando el ip esta guardado y hay menos de 24 horas";
Debo dejar tal cual esta sentencia?

Ya esta listo..... Ya funciona... Gracias abicmaelrc... Solo era un error de transcripcion....

Su codigo funciona bien.... le agradezco... después del tunel la luz....

Última edición por GatorV; 27/08/2009 a las 12:42
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:36.