Foros del Web » Programando para Internet » PHP »

Guardar IPs en un .txt

Estas en el tema de Guardar IPs en un .txt en el foro de PHP en Foros del Web. Hola, Estoy usando este sistema de encuestas en mi sitio: http://www.forosdelweb.com/f18/aport...sin-bd-572908/ Funciona de mil maravillas, pero quisiera saber como guardar las ips de los votantes ...
  #1 (permalink)  
Antiguo 30/09/2010, 18:36
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 8 meses
Puntos: 8
Guardar IPs en un .txt

Hola,

Estoy usando este sistema de encuestas en mi sitio:

http://www.forosdelweb.com/f18/aport...sin-bd-572908/

Funciona de mil maravillas, pero quisiera saber como guardar las ips de los votantes en un archivo .txt y mostrarles directamente los resultados si ya votaron.

El sistema es sin base de datos.

Muchas gracias desde ya :)
  #2 (permalink)  
Antiguo 30/09/2010, 20:01
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Guardar IPs en un .txt

Trata esta forma sencilla
Código PHP:
Ver original
  1. <?php
  2. $file = 'comments.txt';
  3. $reverse = true;
  4.  
  5. if(!empty($_POST['token']) && !empty($_SESSION['token']) && $_SESSION['token'] != $_POST['token']){
  6.     $txt = array();
  7.     foreach($_POST as $key => $val){ $txt[$key] = $val; }
  8.     $txt['ip'] = $_SERVER['REMOTE_ADDR'];
  9.     file_put_contents($file, serialize($txt) . PHP_EOL, FILE_APPEND);
  10. }
  11. $_SESSION['token'] = !empty($_POST['token']) ? $_POST['token'] : mt_rand();
  12. ?>
  13.  
  14. <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
  15.     <input type="hidden" name="token" value="<?php echo mt_rand(); ?>" />
  16.     <input type="text" name="Name" /><br />
  17.     <textarea name="comment" cols="30" rows="5"></textarea><br />
  18.     <input type="submit" />
  19. </form>
  20.  
  21. <?php
  22. if(file_exists($file)){
  23.     $comments = $reverse ? array_reverse(file($file)) : file($file);
  24.     foreach($comments as $val){
  25.         $data = unserialize($val);
  26. ?>
  27.     <fieldset>
  28.         <legend><?php echo $data['Name'] . ' ' . $data['ip']; ?></legend>
  29.         <?php echo $data['comment']; ?>
  30.     </fieldset>
  31. <?php
  32.     }
  33. }
  34. ?>
Esto es de comentarios pero para que veas una forma de hacerlo bien sencilla
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 30/09/2010, 20:19
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 8 meses
Puntos: 8
Respuesta: Guardar IPs en un .txt

Muchas gracias por contestar :)

Aver si entiendo...

Código PHP:
<?php
session_start
();

if(!empty(
$_POST['token']) && !empty($_SESSION['token']) && $_SESSION['token'] != $_POST['token']){
    
$txt = array();
    foreach(
$_POST as $key => $val){ $txt[$key] = $val; }
    
$txt['ip'] = $_SERVER['REMOTE_ADDR'];
    
file_put_contents($fileserialize($txt) . PHP_EOLFILE_APPEND);
}

$_SESSION['token'] = !empty($_POST['token']) ? $_POST['token'] : mt_rand();
?>
Con ese codigo obtengo la IP.

Código PHP:
<?php
if(file_exists($file)){
?>
Con este codigo muestro X si la IP existe en el archivo .txt

Es asi?
En caso lo sea... en que parte del codigo indica que la ip se guarda en un archivo .txt?

Disculpa si parecen muy tontas las preguntas pero no se casi nada de PHP, intento aprender de a pocos :)

Gracias una vez mas
  #4 (permalink)  
Antiguo 30/09/2010, 20:30
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Guardar IPs en un .txt

Las variables te dicen donde está el ip. Analiza un poco el código y verás como lograrlo.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 30/09/2010, 20:37
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: Guardar IPs en un .txt

Cita:
Iniciado por kenproxd Ver Mensaje
Código PHP:
<?php
if(file_exists($file)){
?>
Con este codigo muestro X si la IP existe en el archivo .txt
No, no..
Como dice la misma condicion, si file exists..
Es decir, si existe el archivo declarado en $file (en este caso, comments.txt) se ejecuta lo que esta despues del if ;)

Saludos!
  #6 (permalink)  
Antiguo 30/09/2010, 20:58
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 8 meses
Puntos: 8
Respuesta: Guardar IPs en un .txt

Aver intento otra vez..

Ahm.. si no me equivoco este codigo guarda la IP en la variable txt, y la segunda linea inserta dicha IP en el archivo declarado en la variable file (en el ejemplo comments.txt)

Código PHP:
    $txt['ip'] = $_SERVER['REMOTE_ADDR'];
    
file_put_contents($fileserialize($txt) . PHP_EOLFILE_APPEND); 
Pero hasta hay me quedo...

No entiendo como hacer para que SOLO capture la IP si se realiza la votación, y como hacer para comprobar si la IP esta en el archivo .txt

Disculpen una vez más por mi ignorancia y gracias por su ayuda :)
  #7 (permalink)  
Antiguo 30/09/2010, 21:08
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Guardar IPs en un .txt

En ese caso, cuando vayas recorriendo el archivo, (si usas el ejemplo que te di), solo es hacerlo algo así
Código PHP:
Ver original
  1. <?php
  2. $file = 'comments.txt';
  3. $reverse = true;
  4. $noIpInFile = true;
  5. $getComments = '';
  6.  
  7. if(!empty($_POST['token']) && !empty($_SESSION['token']) && $_SESSION['token'] != $_POST['token']){
  8.     $txt = array();
  9.     foreach($_POST as $key => $val){ $txt[$key] = $val; }
  10.     $txt['ip'] = $_SERVER['REMOTE_ADDR'];
  11.     file_put_contents($file, serialize($txt) . PHP_EOL, FILE_APPEND);
  12. }
  13. $_SESSION['token'] = !empty($_POST['token']) ? $_POST['token'] : mt_rand();
  14.  
  15. if(file_exists($file)){
  16.     $comments = $reverse ? array_reverse(file($file)) : file($file);
  17.     foreach($comments as $val){
  18.         $data = unserialize($val);
  19.         if($data['ip'] == $_SERVER['SERVER_ADDR']){ $noIpInFile = false; }
  20.         $getComments .= '<fieldset><legend> ' . $data['Name'] . ' ' . $data['ip'] . '</legend>' . $data['comment'] . '</fieldset>';
  21.     }
  22. }
  23. if($noIpInFile){
  24. ?>
  25.  
  26. <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
  27.     <input type="hidden" name="token" value="<?php echo mt_rand(); ?>" />
  28.     <input type="text" name="Name" /><br />
  29.     <textarea name="comment" cols="30" rows="5"></textarea><br />
  30.     <input type="submit" />
  31. </form>
  32.  
  33. <?php
  34. }
  35. echo $getComments;
  36. ?>
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #8 (permalink)  
Antiguo 30/09/2010, 21:31
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 8 meses
Puntos: 8
Respuesta: Guardar IPs en un .txt

Creo que ya lo entendi :)

Código PHP:
<?php
session_start
();
$file 'comments.txt';
$reverse true;
$noIpInFile true;
$getComments '';
 
if(!empty(
$_POST['token']) && !empty($_SESSION['token']) && $_SESSION['token'] != $_POST['token']){
    
$txt = array();
    foreach(
$_POST as $key => $val){ $txt[$key] = $val; }
    
$txt['ip'] = $_SERVER['REMOTE_ADDR'];
    
file_put_contents($fileserialize($txt) . PHP_EOLFILE_APPEND);
}
$_SESSION['token'] = !empty($_POST['token']) ? $_POST['token'] : mt_rand();

if(
file_exists($file)){
    
$comments $reverse array_reverse(file($file)) : file($file);
    foreach(
$comments as $val){
        
$data unserialize($val);
        if(
$data['ip'] == $_SERVER['SERVER_ADDR']){ $noIpInFile false; }
        
$getComments .= '//AQUI LO QUE SE MUESTRA SI LA IP ESTA EN EL ARCHIVO .TXT';
    }
}
if(
$noIpInFile){
?>
//AQUI LO QUE SE MUESTRA SI LA IP NO ESTA EN EL ARCHIVO .TXT
<?php 
}
echo 
$getComments;
?>
Agradeceria que me confirmen si estoy en lo correcto :)

Etiquetas: ips, txt
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 11:23.