Foros del Web » Programando para Internet » PHP »

Error para imprimir correctamente una función :(

Estas en el tema de Error para imprimir correctamente una función :( en el foro de PHP en Foros del Web. 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, ...
  #1 (permalink)  
Antiguo 09/11/2006, 14:07
 
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
  #2 (permalink)  
Antiguo 09/11/2006, 20:44
 
Fecha de Ingreso: noviembre-2005
Mensajes: 112
Antigüedad: 18 años, 5 meses
Puntos: 2
Pues por el tipo de error pareciera que estas tratando de definir una función que ya definiste anteriormente... yo trataría de buscar el error por ese lado.
__________________
PuertaX.Net
  #3 (permalink)  
Antiguo 09/11/2006, 21:15
 
Fecha de Ingreso: noviembre-2006
Mensajes: 20
Antigüedad: 17 años, 5 meses
Puntos: 0
Es que eso mismo sé, que se define por 2da vez, pero no encuentro el error, si solamente lo coloqué una sola vez :S ... no será por las filas q saka la db?, no entender ..
  #4 (permalink)  
Antiguo 09/11/2006, 23:35
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 2 meses
Puntos: 3
en "Datos.php" no existe una funcion igual?
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
  #5 (permalink)  
Antiguo 10/11/2006, 02:51
 
Fecha de Ingreso: noviembre-2006
Mensajes: 20
Antigüedad: 17 años, 5 meses
Puntos: 0
En el datos.php

solo está esto

<?

$dbhost="localhost";
$dbusuario="lalalala";
$dbpassword="lalala";
$db="db_lalala";

?>

revisé todo el index.php y nada :S, así q no sé donde falla :(
  #6 (permalink)  
Antiguo 10/11/2006, 02:51
 
Fecha de Ingreso: noviembre-2006
Mensajes: 20
Antigüedad: 17 años, 5 meses
Puntos: 0
Una duda, se podrá evitar usar FUNCTION y colocarlo de otra manera? porque tb cambié el nombre y me sale lo mismo. Pero se podrá hacer un código sin necesidad de FUNCTION?
saludos!
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 03:58.