Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/11/2006, 14:07
areKuT
 
Fecha de Ingreso: noviembre-2006
Mensajes: 20
Antigüedad: 19 años, 11 meses
Puntos: 0
Error para imprimir correctamente una función :(

Holas!!

Ehm bueno, lo que me ocurre es lo siguiente:
Es que quiero cortar la IP, de manera que quede 255.255.--.--
Coloqué una pequeña función, pero me sale un error que es el siguiente;

Fatal error: Cannot redeclare esconder_ip() (previously declared in /home/virtual/sitio114542/www/ip2.php:50) in /home/virtual/sitio114542/www/ip2.php on line 50

la línea 50 es:
function esconder_ip ($ip, $n = 2) { //$n es el nmero de trozos a ocultar

y el código completo es:
Código PHP:
<?
    
//obtendremos los referers que provengan de otra página web
// datos para conectar a la db
include("datos.php");

 
//conectamos a la db
    
$link=mysql_connect($dbhost,$dbusuario,$dbpassword);
    
mysql_select_db($db,$link);
    
 
//sacamos los datos
    
$sql=mysql_query("SELECT * FROM referers order by id desc;");
        
    while(
$row = mysql_fetch_array($sql)) {
    
$enlace = $row[enlace];
    
$ip = $row[ip];
     
$host = $row[host];
    
 
//cortaremos el host
        
$host=explode(".",$host);
        
$n=count($host);
        
$n1=$n-1;
        
$n2=$n-2;
        
$n3=$n-3;
        
$host=$host[$n3].".".$host[$n2].".".$host[$n1];
            
 
//si el host devuelve una ip, cambiaremos los números por el signo "?"
    
if(is_numeric($host[0])){
        for(
$i=0; $i<=9; $i++){
    
$host=str_replace($i,"?",$host);
    }
    }else{
    }    
    
$host=strtolower($host);
 
 
//imprimiremos la fecha
        
$fecha = $row[fecha]; 
        
$fecha = date("d/m/y" . "-" . "H:i",$fecha);
        
 
//cortaremois la ip
     
    
$n = "2";
    function 
esconder_ip ($ip, $n = 2) { //$n es el nmero de trozos a ocultar

    
if (ip2long($ip) == -1 || ip2long($ip) == false) return false;
    
$cachos = explode('.', $ip);
    if (
is_int($n) || count($cachos) != 4 || $n > 4) return false;
    for (
$i = 0, $ip_parseada = array(), $cachos = array_reverse($cachos); $i <= ($n - 1); $i++) $ip_parseada[] = str_repeat('x',                                                                                                                                                                                                                                                                                                                     strlen($cachos[$i]));
    for (
$b = $n; $b <= 3; $b++) $ip_parseada[] = $cachos[$b];
    return 
implode('.', array_reverse($ip_parseada));
    }
    
$ip = esconder_ip($ip, $n);
    
 
//finalmente imprimimos los datos
        
echo "$fecha $ip *.$host $enlace<br>";
    }
    
?>
Qué hago mal? :(
Hay que destacar que es una fila que se saca de la db.

Última edición por areKuT; 09/11/2006 a las 14:42