Foros del Web » Programando para Internet » PHP »

Problemas al llamar funciones (redeclare)

Estas en el tema de Problemas al llamar funciones (redeclare) en el foro de PHP en Foros del Web. Hola amigos, he estado creando un muro parecido al de facebook para la escuela. El problema es que antes funcionaba super bien cargaba todo hasta ...
  #1 (permalink)  
Antiguo 24/10/2011, 12:00
 
Fecha de Ingreso: diciembre-2010
Mensajes: 17
Antigüedad: 13 años, 4 meses
Puntos: 0
Problemas al llamar funciones (redeclare)

Hola amigos, he estado creando un muro parecido al de facebook para la escuela. El problema es que antes funcionaba super bien cargaba todo hasta q lo mude de un localhost a otro, cuando llamo una funcion llamada avatar me arroja el siguiente error:

Fatal error: Cannot redeclare avatar() (previously declared in C:\xampp\htdocs\socialnetwork\func.php:4) in C:\xampp\htdocs\socialnetwork\func.php on line 9


La funcion trabaja bien en todo el documento excepto cuando la llama el muro, les dejo los codigos para que vean como esta y me puedan ayudar por favor.

Esta es la función:
Código PHP:
<? include_once("db.php");

//Get Avatar
function avatar($ida){
    
$avatarToGet mysql_query("SELECT * FROM avatar WHERE idUser='$ida'");
    
$avatarGet mysql_fetch_array($avatarToGet);
    
$avatarImg $avatarGet['image'];
    return 
$avatarImg;
}
?>
Este es el codigo del muro:
Código PHP:
$user $_GET['u'];
$limit1 $_GET['lim1'];
$limit2 $_GET['lim2'];
$mostrando 0;

$wallCountGet mysql_query("SELECT * FROM wall_post WHERE user='$user'");
$wallCount mysql_num_rows($wallCountGet);

$wallToGet mysql_query("SELECT * FROM wall_post WHERE user='$user' ORDER BY id DESC LIMIT $limit1, $limit2");
while(
$wallGet mysql_fetch_array($wallToGet)){
    
$mostrando $mostrando+1;

    
$idP $wallGet['id'];
    
$tipoP $wallGet['tipo'];
    
$likescount countlikes($idP);
    
    
//usuario dueno
    
$userAvatar2 avatar($user);
    
$userAvatar $avatarCar.$userAvatar2;
    
$userName showname($user);
    
    
//usuario de qn viene
    
$fromP $wallGet['idfrom'];
    
$nameP showname($fromP);
    
$avatarP2 avatar($fromP);
    
$avatarP $avatarCar.$avatarP2;
    
    
//LIke
    
$like_txt userlike($idP$idUser$fromP);
    
    if(
$idUser == $fromP or $user == $idUser){
        
$delete_txt "<span class='likelink' onclick='deletePost($idP);'>eliminar</span> &middot; ";
    }else{
        
$delete_txt "";
    }

La verdad no se a que se deba este "Fatal error", ya investigue en www.php.net si existe una función llamada avatar y no hay ninguna, asi q no se a que se deba q solo en ese archivo pase eso.

Gracias de ante mano!
  #2 (permalink)  
Antiguo 24/10/2011, 12:09
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Problemas al llamar funciones (redeclare)

Si ya declaraste la función avatar en el archivo func.php no puedes volver a declararla porque te va a salir ese error. Debe haber una sola con ese nombre, revisa los includes que entre todo solo tengas una función con ese nombre.

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #3 (permalink)  
Antiguo 24/10/2011, 12:12
 
Fecha de Ingreso: diciembre-2010
Mensajes: 17
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Problemas al llamar funciones (redeclare)

Ya los revise, y no la volvi a declarar en ninguno :/, y me dice que la estoy declarando en func.php linea 9 y que ya ha sido declarada en func.php linea 4. Ya revise cambie nombres de variables, etc. y nada.
  #4 (permalink)  
Antiguo 24/10/2011, 12:14
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Problemas al llamar funciones (redeclare)

Muestra el contenido de db.php, no la tienes ya declarada en ese include?
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #5 (permalink)  
Antiguo 24/10/2011, 12:15
 
Fecha de Ingreso: diciembre-2010
Mensajes: 17
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Problemas al llamar funciones (redeclare)

Ok, es este:
Código PHP:
<? include_once("db.php");

//Get Avatar
function avatar($ida){
    
$avatarToGet mysql_query("SELECT * FROM avatar WHERE idUser='$ida'");
    
$avatarGet mysql_fetch_array($avatarToGet);
    
$avatarImg $avatarGet['image'];
    return 
$avatarImg;
}

//Get ShowName
function showname($ids){
    
$showToGet mysql_query("SELECT * FROM showname WHERE idUser='$ids'");
    
$showGet mysql_fetch_array($showToGet);
    
$showname $showGet['showname'];
    
$showname ucwords(strtolower($showname));
    return 
$showname;
}

//wall coments
function postFrom($idObj){
    
$postToGetPost mysql_query("SELECT * FROM wall_post WHERE id='$idObj' LIMIT 1");
    if(
$postGetPost mysql_fetch_array($postToGetPost)){
        
$idfromPost $postGetPost['idfrom'];
    }
    return 
$idfromPost;
}
?>
  #6 (permalink)  
Antiguo 24/10/2011, 12:21
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Problemas al llamar funciones (redeclare)

Ese es func.php, pero que tiene este include

include_once("db.php");

muestra db.php

y ya revisaste que en el "muro" no tengas una función con ese nombre???
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #7 (permalink)  
Antiguo 24/10/2011, 12:24
 
Fecha de Ingreso: diciembre-2010
Mensajes: 17
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Problemas al llamar funciones (redeclare)

Este es db.php
Código PHP:
<?
//Datos del sitio
$tituloSite "Sitio web";
$anioLanzamiento 2011;
$mainURL "http://www.mistio.net";
$mainMail "[email protected]";

//Imagenes
$avatarCar "avatar/";

//fecha
//$timeZone = date("e");
$siteFecha date_default_timezone_set("America/Chicago");
$hoyDia date("j"); //1 a 31
$hoyDiaN date("l"); // Monday
$hoyMes date("M");
$hoyMesNum date("m"); //01 a 12
$hoyAnio date("Y"); //1999
$hoyHora date("G"); // 1 a 24
$hoyMin date("i"); //00 a 59

$hoyFechaHora $hoyDia." de ".$hoyMes." de ".$hoyAnio." a las ".$hoyHora;
$hoyFecha $hoyDia." de ".$hoyMes." de ".$hoyAnio;
$hoyFechaCorta $hoyDia."/".$hoyMesNum."/".$hoyAnio;

$ayerDia $hoyDia-1;
$ayerFecha $ayerDia." de ".$hoyMes." de ".$hoyAnio;

//Datos del desarrollador
$desarrollador "fernandrock";
$website "www.fernandrock.com";
if(
$anioLanzamiento == $hoyAnio){
    
$copyAnios $anioLanzamiento;
}else{
    
$copyAnios $anioLanzamiento."-".$hoyAnio;
}    
$creditos "Copyright &copy; ".$copyAnios." &middot; Desarrollado por <a href='http://".$website."'>".$desarrollador."</a>";

//Datos MySql
$mysql_host "localhost";
$mysql_database "db";
$mysql_user "user";
$mysql_password "pass";

$db_Conn mysql_connect($mysql_host,$mysql_user,$mysql_password) or die("Error al conectarse a la base de datos: " mysql_error());

mysql_select_db($mysql_database$db_Conn) or die("Error al conectarse a la base de datos: " mysql_error());
?>

Última edición por fernandrock; 24/10/2011 a las 12:32
  #8 (permalink)  
Antiguo 24/10/2011, 12:42
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Problemas al llamar funciones (redeclare)

Y muestra como haces los includes en el "muro", no estarás haciendo un include dentro de un bucle? Tienes include_once en el muro?
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #9 (permalink)  
Antiguo 24/10/2011, 12:43
 
Fecha de Ingreso: diciembre-2010
Mensajes: 17
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Problemas al llamar funciones (redeclare)

wall.php
Código PHP:
<? include_once("db.php");
include_once(
"func.php");
include_once(
"wall_like.php");
include_once(
"log.php");

/*TIPOS
de usuario
1 - estado
2 - publicacion normal
3 - compartir foto
4 - compartir video
5 - compartir enlace

de un usuario a otro
6 - publicacion
7 - compartir foto
8 - compartir video
9 - compartir enlace

acciones de usuario
10 - acualizo albun
11 - amigo de...
*/

$user $_GET['u'];
$limit1 $_GET['lim1'];
$limit2 $_GET['lim2'];
$mostrando 0;

$wallCountGet mysql_query("SELECT * FROM wall_post WHERE user='$user'");
$wallCount mysql_num_rows($wallCountGet);

$wallToGet mysql_query("SELECT * FROM wall_post WHERE user='$user' ORDER BY id DESC LIMIT $limit1, $limit2");
while(
$wallGet mysql_fetch_array($wallToGet)){
    
$mostrando $mostrando+1;

    
$idP $wallGet['id'];
    
$tipoP $wallGet['tipo'];
    
$likescount countlikes($idP);
    
    
//usuario dueno
    
$userAvatar2 avatar($user);
    
$userAvatar $avatarCar.$userAvatar2;
    
$userName showname($user);
    
    
//usuario de qn viene
    
$fromP $wallGet['idfrom'];
    
$nameP showname($fromP);
    
$avatarP2 avatar($fromP);
    
$avatarP $avatarCar.$avatarP2;
    
    
//LIke
    
$like_txt userlike($idP$idUser$fromP);
    
    if(
$idUser == $fromP or $user == $idUser){
        
$delete_txt "<span class='likelink' onclick='deletePost($idP);'>eliminar</span> &middot; ";
    }else{
        
$delete_txt "";
    }
    
    
//Contenidos
    
$msjP $wallGet['texto'];
    
$msjP myCodeMsj($msjP);
    
$imgP $wallGet['img'];
    
$flashP $wallGet['flash'];
    
$linkP $wallGet['link'];
    
    
//Fecha y hora
    
$horaP $wallGet['hora'];
    
$minP $wallGet['min'];
    
$diaNP $wallGet['dian'];
    
$diaP $wallGet['dia'];
    
$mesP $wallGet['mes'];
    
$anioP $wallGet['anio'];
    
$textoDate datetext($diaP$mesP$anioP$diaNP$horaP$minP$hoyDia$hoyMesNum$hoyAnio$hoyHora$hoyMin);
    
    
//Procesa el tipo
    
switch($tipoP){
        case 
1//Estado
            
echo "<li>
                <a href='profile.php?id=$user'><img src='mini.php?i=$userAvatar' class='avatar'/><a>
                <div class='status'><a href='profile.php?id=$user'><b>$userName</b></a><p class='message'>$msjP</p>"
;
        break;
        
        case 
3;
        echo 
"<li>
        <a href='profile.php?id=$user'><img src='mini.php?i=$userAvatar' class='avatar'/><a>
        <div class='status'><a href='profile.php?id=$user'><b>$userName</b></a>
        <p class='message'>$msjP</p>
        <p class='imag'><img src='miniphoto.php?s=200&i=photos/$imgP' onclick=\"mostrarWin('foto', '$imgP');\"/></p>"
;
        break;
        
        case 
5;
        echo 
"<li>
        <a href='profile.php?id=$user'><img src='mini.php?i=$userAvatar' class='avatar'/><a>
        <div class='status'><a href='profile.php?id=$user'><b>$userName</b></a>
        <p class='message'>$msjP</p> $linkP"
;
        break;
        
        case 
6//Estado
            
echo "<li>
                <a href='profile.php?id=$fromP'><img src='mini.php?i=$avatarP' class='avatar'/><a>
                <div class='status'><a href='profile.php?id=$fromP'><b>$nameP</b></a> &rsaquo;
                <p class='message'>$msjP</p>"
;
        break;
        
        case 
7;
        echo 
"<li>
        <a href='profile.php?id=$fromP'><img src='mini.php?i=$avatarP' class='avatar'/><a>
        <div class='status'><a href='profile.php?id=$fromP'><b>$nameP</b></a> &rsaquo;
        <p class='message'>$msjP</p>
        <p class='imag'><img src='miniphoto.php?s=200&i=photos/$imgP' onclick=\"mostrarWin('foto', '$imgP');\"/></p>"
;
        break;
        
        case 
9;
        echo 
"<li>
        <a href='profile.php?id=$fromP'><img src='mini.php?i=$avatarP' class='avatar'/><a>
        <div class='status'><a href='profile.php?id=$fromP'><b>$nameP</b></a> &rsaquo;
        <p class='message'>$msjP</p> $linkP"
;
        break;
    }
    
//Contar comentarios
    
$numComentsGet mysql_query("SELECT * FROM wall_coment WHERE idObj='$idP'");
    
$comentsCount mysql_num_rows($numComentsGet);
    
    if(
$comentsCount 1){
        
$numCom "<div class='wall_coments_num' onclick=\"goUrl('pub.php?id=$idP')\">".$comentsCount." comentarios. <span class='cmentLink'>Comentar</span></div>";
        
$comentarBtn "";
    }else if(
$comentsCount == 1){
        
$numCom "<div class='wall_coments_num' onclick=\"goUrl('pub.php?id=$idP')\">Un comentario. <span class='cmentLink'>Comentar</span></div>";
        
$comentarBtn "";
    }else{
        
$numCom "";
        
$comentarBtn " &middot; <span class='likelink' onclick=\"goUrl('pub.php?id=$idP')\">Comentar</span>";
    }
    
    echo 
"<p class='likes'>".$delete_txt.$likescount.$like_txt.$comentarBtn."  &middot; Publicado $textoDate.</p>";
    
    echo 
"<div class='wall_coments'>";
    
    echo 
$numCom;
    
    if(
$comentsCount 5){
        
$limComIni 0;
    }else{
        
$limComIni $comentsCount-5;
    }
        
    
$comentToGet mysql_query("SELECT * FROM wall_coment WHERE idObj='$idP' ORDER BY id ASC LIMIT $limComIni, $comentsCount");
    while(
$comentGet mysql_fetch_array($comentToGet)){
        
$idCom $comentGet['id'];
        
$fromCom $comentGet['idfrom'];
        
$nameFromCom showname($fromCom);
        
$avatarFromCom2 avatar($fromCom);
        
$avatarFromCom $avatarCar.$avatarFromCom2;
        
$comentCom $comentGet['coment'];
        
$comentCom myCodeMsj($comentCom);
        
        
//fecha publicación
        
$horaCom $comentGet['hora'];
        
$minCom $comentGet['min'];
        
$dianCom $comentGet['dian'];
        
$diaCom $comentGet['dia'];
        
$mesCom $comentGet['mes'];
        
$anioCom $comentGet['anio'];
        
$dateCom datetext($diaCom$mesCom$anioCom$dianCom$horaCom$minCom$hoyDia$hoyMesNum$hoyAnio$hoyHora$hoyMin);
        
        if(
$idUser == $fromCom or $user == $idUser){
            
$borrarCom "<span class='wall_coment_delete' onclick=\"deleteComent('".$idCom."');\">x</span>";
        }else{
            
$borrarCom "";
        }
        
        echo 
"<div class='wall_coment'><table border='0' width='100%'>
  <tr>
    <td width='35' valign='top'><a href='profile.php?id=$fromCom'><img src='miniphoto.php?s=35&i=$avatarFromCom' /></a></td>
    <td><a href='profile.php?id=$fromCom'><b>$nameFromCom</b></a>"
.$borrarCom."<br>$comentCom<br><span class='comentDate'>Coment&oacute; $dateCom.</span></td>
  </tr>
</table></div>"
;
    }
    
    
//echo "<div class='wall_coment'><div id='coment_text_$idCom' class='comentinput' contenteditable='true'></div><input name='' type='text' /></div>";
    
    
echo "</div></div></li>";
}

if(
$wallCount $mostrando){
    echo 
"<div id='showmore' class='wallshowmore' onclick='showmore()'>Mostrando $mostrando de $wallCount. Ver mas</div>";
}else if(
$mostrando == 0){
    echo 
"<div class='wallshowmore'>Este usuario aun no ha publicado</div>";
}else{
    echo 
"<div class='wallshowmore'>No hay mas</div>";
}
?>
  #10 (permalink)  
Antiguo 24/10/2011, 12:56
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Problemas al llamar funciones (redeclare)

Pues en esos no está el problema, tienes que revisar en todo el código que no tengas un include dentro de un while o cualquier otro loop
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #11 (permalink)  
Antiguo 24/10/2011, 13:12
 
Fecha de Ingreso: diciembre-2010
Mensajes: 17
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Problemas al llamar funciones (redeclare)

eso de meter includes dentro de un while o loop no, siempre los pongo hasta arriba yo creo q lo mas facil sera volver a hacer el codigo completo

Etiquetas: declarar, definida, funcion, funciones, redeclare, volver, variables
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 21:35.