Foros del Web » Programando para Internet » PHP »

problema con funcion Fatal error: Cannot redeclare

Estas en el tema de problema con funcion Fatal error: Cannot redeclare en el foro de PHP en Foros del Web. pues asi es chicos recuro a ustedes por que no encuentro mi fallo ; como vera el problema es este: Fatal error: Cannot redeclare Compro() ...
  #1 (permalink)  
Antiguo 03/10/2013, 23:35
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 13 años, 10 meses
Puntos: 28
Pregunta problema con funcion Fatal error: Cannot redeclare

pues asi es chicos recuro a ustedes por que no encuentro mi fallo ;

como vera el problema es este:

Fatal error: Cannot redeclare Compro() (previously declared in C:\xampp\htdocs\cont\funcion.php:2) in C:\xampp\htdocs\cont\funcion.php on line 2

archivo Función:

Código PHP:
Ver original
  1. <?php
  2. function Compro(){ $fecha_actual = strtotime(date("d-m-Y",time())); $fecha_entrada = strtotime("16-01-2014"); if($fecha_actual > $fecha_entrada){ return false; }else{ return true; }}
  3. ?>

lo llamo en el head como archivo:

Código PHP:
Ver original
  1. <?php include("cont/funcion.php"); ?>

y luego lo llamo como funcion condicional:

Código HTML:
Ver original
  1. <?php if(Compro()==true){ ?>
  2. Contenido
  3. <?php }else{echo "Licencia Caducada contacte al Creador de este script para su compra"; }?>
  4. </body>

pero no me anda a ver quien me tira una mano por aqui por que no quiero usar el require_once();
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB

Última edición por arcanisgk122; 03/10/2013 a las 23:41
  #2 (permalink)  
Antiguo 03/10/2013, 23:47
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problema con funcion Fatal error: Cannot redeclare

Si no quieres usar require_once entonces procura cargar sólo una vez dicho script.

El error es claro, en algún punto incluyes de nuevo el script con la definición de la función y ahí es cuando se colapsan.

Reflexiona bien lo que haces, no ninguna hay solución mágica para tu problema, sencillamente debes organizar mejor tu código.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 04/10/2013, 00:04
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 13 años, 10 meses
Puntos: 28
Respuesta: problema con funcion Fatal error: Cannot redeclare

el detalle es que ya no se que hacer despues de aqui XD
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB
  #4 (permalink)  
Antiguo 04/10/2013, 00:07
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problema con funcion Fatal error: Cannot redeclare

Cita:
Iniciado por arcanisgk122 Ver Mensaje
el detalle es que ya no se que hacer despues de aqui XD
¿Y de dónde sacas la idea de que nosotros sí?

Vamos, que adivinar no podemos, tampoco podemos leer tu mente ni ver a totalidad la estructura de tu proyecto.

Si de verdad buscas orientación deberías esforzarte más, tienes muchos huecos de información y si lo único que sabes hacer es dudar y poner caras extrañas, ¿qué podríamos hacer por ti?

El asunto está en tus manos, no en las nuestras.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 04/10/2013, 00:19
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 13 años, 10 meses
Puntos: 28
Respuesta: problema con funcion Fatal error: Cannot redeclare

pues vine aca para ver si veian el error que yo no encuentro... guia o ayuda... en otro script igual funciona correctamente y no da este error ... y pues como que ideas tampoco aportas y es mas hace su buen tiempo te dije que si no tienes algo constructivo que decirme mas que criticar solo abstente de responder mis post
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB
  #6 (permalink)  
Antiguo 04/10/2013, 00:25
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problema con funcion Fatal error: Cannot redeclare

Tranquilo, es que no veo porque no entiendes el tipo de error que tienes frente a ti.

No tienes ningún error de sintaxis así que ver el código no sirve de nada, tu problema es lógico, de ejecución, ¿de verdad no entiendes lo que te está pasando?

Lee bien mi primer respuesta: en algún momento, en tu aplicación (cosa que no vemos, ni sabemos cómo lo harías) incluyes dos veces el script con la función que te da error, ¿y sabes lo que eso provoca?

Pues como no está permitido definir dos veces una misma función o clase pues te salta el error que nos muestras.

Piensa dos veces lo que tienes y te vuelvo a preguntar, ¿qué tipo de solución esperas?

No quiero sonar pesado pero te pones en una posición que no ayuda para nada, no sabemos el momento exacto en que incluyes dicho script, ni mucho menos.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 04/10/2013, 00:29
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 13 años, 10 meses
Puntos: 28
Respuesta: problema con funcion Fatal error: Cannot redeclare

pues espero que me digan hiciste esto mal, y te digo algo mi proyecto solo es programar estos micro script de tareas de la u no tengo declaraciones ni nada mas que lo afecte... y mucho menos he declarado dos veces la misma función

Te lo repirto a cuenta gotas el script lo incluyo aqui en el head

Código PHP:
Ver original
  1. <?php include("cont/funcion.php"); ?>

despues en el mismo Html lo llamo a la funcion:

Código PHP:
Ver original
  1. <?php
  2. function Compro(){ $fecha_actual = strtotime(date("d-m-Y",time())); $fecha_entrada = strtotime("16-01-2014"); if($fecha_actual > $fecha_entrada){ return false; }else{ return true; }}
  3. ?>

y ya sabes cual es el script-...
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB

Última edición por arcanisgk122; 04/10/2013 a las 00:34
  #8 (permalink)  
Antiguo 04/10/2013, 00:36
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problema con funcion Fatal error: Cannot redeclare

La experiencia y los mensajes de error no mienten, mucho menos PHP te va a engañar, si dice que estás re-declarando una función (ya sea explícitamente o indirectamente) entonces es verdad, ¿o de pensaste que se trataba de una broma?

Lo único que puedes hacer es depurar tu código, no más, posiblemente no incluyas dicho script dos veces a conciencia, pero si algún otro script lo incluye y eventualmente incluyes dos veces también ese script entonces igualmente intentará incluir el otro, etc, etc.

Te sugiero revisar lo siguiente: http://php.net/manual/es/function.de...-backtrace.php

Con ello deberías depurar en el momento del error, para verificar cual es el stack de ejecución y ver si algo se incluye dos veces (puede que ahí este la clave), de otra forma y a sabiendas de que siempre me escucho mal: no podemos adivinar que haces mal.

PDTA: Muestra el 100% de lo que haces, no solo gotas, así tampoco vamos a llegar a nada.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 04/10/2013, 02:20
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 13 años, 10 meses
Puntos: 28
Respuesta: problema con funcion Fatal error: Cannot redeclare

he mostrado todo el código se nota que ni siquiera lo has mirado
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB
  #10 (permalink)  
Antiguo 04/10/2013, 02:39
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problema con funcion Fatal error: Cannot redeclare

Cita:
Iniciado por arcanisgk122 Ver Mensaje
he mostrado todo el código se nota que ni siquiera lo has mirado
Vale, estoy loco y tienes un problema fuera de este mundo, ojalá ocurra un milagro y te de luz.

Seguramente tampoco leíste el enlace que te pasé, en fin.

Por lo pronto no soy capaz de ayudarte.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #11 (permalink)  
Antiguo 04/10/2013, 02:46
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: problema con funcion Fatal error: Cannot redeclare

Dudar de la sabiduría y buen hacer de pateketrueke resulta cuanto menos pedante por tu parte.
Como te ha dicho él, el error está en la lógica del programa, no hay fallos de sintaxis, simplemente estás declarando dos (o mas) veces la función "Compro()" con lo que tienes dos soluciones:
1.- Usas require_once o include_once
2.- Buscas todos los include("cont/funcion.php") y dejas solo uno.

Tienes esas dos soluciones, vamos, lo que te ha dicho entre líneas pateketrueke desde el principio.
  #12 (permalink)  
Antiguo 04/10/2013, 03:12
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 13 años, 10 meses
Puntos: 28
Respuesta: problema con funcion Fatal error: Cannot redeclare

repito solo existe un ("cont/funcion.php") y esta en el head parte superior.
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB
  #13 (permalink)  
Antiguo 04/10/2013, 03:47
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: problema con funcion Fatal error: Cannot redeclare

Usa el require_once o include_once según necesidades, si desaparece el error, es por que NO se incluye una sola vez.
Si incluyes mas ficheros tal vez tengas esa función en otro include o como te ha dicho pateketrueke se incluya a través de otro include, desde otro include, desde otro include mas, etc.

El error es claro, no hay mas.

Etiquetas: fatal, fecha, funcion
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 18:47.