Foros del Web » Programando para Internet » PHP »

Error? No lo veo :S

Estas en el tema de Error? No lo veo :S en el foro de PHP en Foros del Web. Saludos pues en una de mis webs tengo un una funcion la cual no me funciona y no se porque, em dice que hay un ...
  #1 (permalink)  
Antiguo 06/07/2008, 19:41
Avatar de TxT
TxT
 
Fecha de Ingreso: junio-2008
Ubicación: Canada
Mensajes: 272
Antigüedad: 15 años, 10 meses
Puntos: 2
Exclamación Error? No lo veo :S

Saludos pues en una de mis webs tengo un una funcion la cual no me funciona y no se porque, em dice que hay un error de que dicha funcion ya existe o aglo asi, pero es imposible..

Bueno aqui les dejo el contenido y el error:

Código PHP:
function estaBaneado($ip) {
        
$query "SELECT * FROM `baneos` WHERE ip = '$ip'"
        
$resp = @mysql_query($query);
        
$rows = @mysql_num_rows($resp); 
        
        if (
$rows) {
            
$ban = @mysql_fetch_array($resp);
            if (
$ban['desbanear'] == 0)
                return 
true;
            else {
                
$actual time();
                if (
$ban['desbanear'] <= $actual) {
                    
$query "DELETE FROM `baneos` WHERE ip = '$ip'"
                    @
mysql_query($query);
                    return 
false;
                } else
                    return 
true;
            }    
        } else
            return 
false;    
    } 
Y el Error Es Este:
Cita:
Fatal error: Cannot redeclare estabaneado() (previously declared in /home/infoh/public_html/mchat/funciones.php:3) in /home/infoh/public_html/mchat/funciones.php on line 23
Bueno la linea numero 3 es donde comienza la funcion, la linea 23 es el ultimo } que ven hay.. asi que ni entiendo, es el cierre pero detecta un error o_O como es posible? donde esta el error? revise y revise y me sigue dando error. Hasta lo psue todo con } else { por si acaso era eso y ni asi tampoco :S

Ya no tengo idea que puede ser. Esto me paso despues de haber transferido la web de host, asi que no se si sea un problema del host o si fue que al transferirlo funciono mal (de todas formas intente borrandolo y poniendolo de nuevo y tampoco :S )
  #2 (permalink)  
Antiguo 06/07/2008, 20:43
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Error? No lo veo :S

Porque no cierras las llaves bien?

Así veras el código de forma más limpia y podrás ver el error claramente.

Saludos.
  #3 (permalink)  
Antiguo 06/07/2008, 21:20
Avatar de TxT
TxT
 
Fecha de Ingreso: junio-2008
Ubicación: Canada
Mensajes: 272
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Error? No lo veo :S

Pues como dije antes, tambien lo intente cerrandolas pero no me funciona tampoco... aparte de eso no estan todas bien serradas porque eso es un minichat, y no fue creado por mi :P

De todas formas mismo cerrandolas bien, me seguia saliendo el error :S

Código PHP:
function estaBaneado($ip) {
        
$query "SELECT * FROM `baneos` WHERE ip = '$ip'"
        
$resp = @mysql_query($query);
        
$rows = @mysql_num_rows($resp); 
        
        if (
$rows) {
            
$ban = @mysql_fetch_array($resp);
            if (
$ban['desbanear'] == 0){
                return 
true;
           } else {
                
$actual time();
                if (
$ban['desbanear'] <= $actual) {
                    
$query "DELETE FROM `baneos` WHERE ip = '$ip'"
                    @
mysql_query($query);
                    return 
false;
                } else {   return 
true;     }    
}
        } else {   return 
false;    }
    } 
Y sigo una vez mas sin ver ningun Error! :S
  #4 (permalink)  
Antiguo 06/07/2008, 21:32
Avatar de jmn2k1  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires...
Mensajes: 489
Antigüedad: 22 años, 5 meses
Puntos: 2
Respuesta: Error? No lo veo :S

Para ver los errores no deberias "silenciar" las salida de estos en las funciones! (con la @)

Igual, el error particular no tiene que ver con eso, fijate que no estes incluyendo el mismo archivo varias veces (y por ende, definiendo dos veces la funcion), podrias probar usando un require_once (o include_once) para incluir el archivo.

Slds
__________________
JmN
  #5 (permalink)  
Antiguo 06/07/2008, 21:35
Avatar de TxT
TxT
 
Fecha de Ingreso: junio-2008
Ubicación: Canada
Mensajes: 272
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Error? No lo veo :S

em estaba pensando (es que he revisado y en ningun lado se repite y mucho menos donde me indica :S ).

Como es la funcion para hacer una funcion solo si no existe anteriormente? if function exist() como es? asi ejecutara la funcion, solo si no existe anteriormente :)
  #6 (permalink)  
Antiguo 06/07/2008, 21:47
Avatar de jmn2k1  
Fecha de Ingreso: noviembre-2001
Ubicación: Buenos Aires...
Mensajes: 489
Antigüedad: 22 años, 5 meses
Puntos: 2
Respuesta: Error? No lo veo :S

Pero ese archivo lo incluis en otro/otros?
Que este definida la funcion muchas veces no quiere decir que este repetida, si por ejemplo la definiste en el archivo A, y despues en B incluis A, y luego por alguna razon volves a incluir A (o algun archivo que tambien lo incluya) va a aparecer este error...

function_exists() es la funcion que podes usar (http://ar2.php.net/manual/es/functio...ion-exists.php). Igualmente yo te diria que revises los archivos como se incluyen en vez de usar esta funcion..
__________________
JmN
  #7 (permalink)  
Antiguo 06/07/2008, 23:03
Avatar de TxT
TxT
 
Fecha de Ingreso: junio-2008
Ubicación: Canada
Mensajes: 272
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Error? No lo veo :S

Muchisimas gracias, finalmente tenias razon el problema es que como es un include dentro del minichat, salia 2 veces el include funciones.php solo que en distintos archivos. Lo que hice (ya que necesito que aparezca en los dos, porque uso los dos separados y tambien unidos a la vez)

Fue poner que si la funcion existe (la que llama el funciones .php) no incluir el funciones.php en el segundo archvio, sino pues lo incluye :D

Muchas gracias una vez mas!
  #8 (permalink)  
Antiguo 07/07/2008, 08:46
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Error? No lo veo :S

Lo ideal es que en ese caso uses include_once para solo los archivos con funciones, con eso te evitas ese problema.

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:21.