Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/11/2006, 14:07
areKuT
 
Fecha de Ingreso: noviembre-2006
Mensajes: 20
Antigüedad: 17 años, 5 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) == -|| ip2long($ip) == false) return false;
    
$cachos explode('.'$ip);
    if (
is_int($n) || count($cachos) != || $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