Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Require con 3 archivos

Estas en el tema de Require con 3 archivos en el foro de PHP en Foros del Web. Hola gente, tengo un problema y la verdad estube mirando los manuales pero no se aclara nada similar a mi caso. Explico, tengo 3 archivos. ...
  #1 (permalink)  
Antiguo 17/07/2013, 10:47
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 10 meses
Puntos: 320
Require con 3 archivos

Hola gente, tengo un problema y la verdad estube mirando los manuales pero no se aclara nada similar a mi caso.

Explico, tengo 3 archivos. (Pongo los nombres reales)

/Sistema/Asincronico/Recepcion_Tablas.php
Código PHP:
Ver original
  1. <?php
  2. require('../Clases/Compuestas/Cliente_Listado.php');
  3. ?>

/Sistema/Clases/Compuestas/Cliente_Listado.php
Código PHP:
Ver original
  1. <?php
  2. require('../Primitivas/Cliente_Datos.php');
  3. ?>

/Sistema/Clases/Primitivas/Cliente_Datos.php
Código PHP:
Ver original
  1. <?php
  2. echo('Hola!!');
  3. ?>

Los nombres de los archivos y las rutas estan bien, de echo, si ejecuto cualquiera de los dos ultimos anda bien, pero cuando ejecuto el primero me da un error 500.
Adicionalemente, si en el segundo archivo pongo un echo y quito el require el primero anda bien, osea que las rutas estan joya.
El problema es cuando tienen que trabajar los 3 juntos.

alguien sabe que pasa??
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #2 (permalink)  
Antiguo 17/07/2013, 10:52
Avatar de KATHYU  
Fecha de Ingreso: julio-2013
Mensajes: 547
Antigüedad: 10 años, 8 meses
Puntos: 46
Respuesta: Require con 3 archivos

Probo con include_once para el primer archivo ??
__________________
Al contrario de lo que muchos podrían afirmar, ayudar no te hace pobre, sino más rico.
  #3 (permalink)  
Antiguo 17/07/2013, 10:57
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 16 años, 11 meses
Puntos: 292
Respuesta: Require con 3 archivos

Pues yo si creo que esta mal la ruta y/o nombre del primer archivo incluido / requerido
__________________
Salu2!
  #4 (permalink)  
Antiguo 17/07/2013, 11:00
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 10 meses
Puntos: 320
Respuesta: Require con 3 archivos

KATHYU si, probe con ambos y pasa lo mismo.

Italico76 los nombres estan bien, de hecho la funcion file_exist() devuelve true si la antepongo a los require.

Pueden probarlo para comprobar, solo con poner el codigo que puse alcanza para ver la falla.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #5 (permalink)  
Antiguo 17/07/2013, 11:03
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 16 años, 11 meses
Puntos: 292
Respuesta: Require con 3 archivos

Cita:
Iniciado por NSD Ver Mensaje
[B]solo con poner el codigo que puse alcanza para ver la falla.
y cual es ?

A mi me hace pensar el ERROR 500 .... que creo es un error que arroja el servidor y no es del interprete PHP ... diria puede ser falla en .htaccess
__________________
Salu2!
  #6 (permalink)  
Antiguo 17/07/2013, 11:06
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 10 meses
Puntos: 320
Respuesta: Require con 3 archivos

las 3 lineas que puse cuando pregunte -.-" los dos require y el echo, eso solo adentro de las carpetas y listo.

El error 500 tambien sale cuando hay una falla en la sintaxis o cuando el compilador php falla.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #7 (permalink)  
Antiguo 17/07/2013, 11:07
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 16 años, 11 meses
Puntos: 292
Respuesta: Require con 3 archivos

Cita:
Iniciado por NSD Ver Mensaje
El error 500 tambien sale cuando hay una falla en la sintaxis o cuando el compilador php falla.
No me parece.... ponme un ejemplo si puedes... y CUAL COMPILADOR ?
__________________
Salu2!
  #8 (permalink)  
Antiguo 17/07/2013, 11:09
Avatar de qvixote  
Fecha de Ingreso: marzo-2008
Mensajes: 79
Antigüedad: 16 años
Puntos: 2
Respuesta: Require con 3 archivos

El problema ocurre porque las rutas son relativas al primer archivo que hace el require. Entonces, cuando haces el require desde el primero al segundo, funciona bien, pero cuando se carga el segundo archivo habiendo sido llamado desde el primero con el require y ejecuta el require para cargar el tercer archivo, la ruta es relativa al directorio donde está el PRIMER ARCHIVO, por lo tanto, está intentando encontrar el archivo en:

/Sistema/Primitivas/Cliente_Datos.php

Si cambias la ruta del require del segundo archivo a "../Clases/Primitivas/Cliente_Datos.php" funcionará para el caso de los tres archivos, pero si usas sólo desde el segundo no funcionará. Para que funcione en cualquiera de los casos, se me ocurren dos opciones:

1. Agregar alguna lógica en el segundo archivo para saber si está siendo incluido desde el primer archivo o no, y así decidir qué ruta usar.
2. Crear un enlace simbólico para que el archivo esté en ambas rutas.

Saludos.
  #9 (permalink)  
Antiguo 17/07/2013, 11:11
Avatar de KATHYU  
Fecha de Ingreso: julio-2013
Mensajes: 547
Antigüedad: 10 años, 8 meses
Puntos: 46
Respuesta: Require con 3 archivos

Cita:
Iniciado por NSD Ver Mensaje
KATHYU si, probe con ambos y pasa lo mismo.

Italico76 los nombres estan bien, de hecho la funcion file_exist() devuelve true si la antepongo a los require.

Pueden probarlo para comprobar, solo con poner el codigo que puse alcanza para ver la falla.
Sorry a mi no me da error, algo anda mal en tus rutas
__________________
Al contrario de lo que muchos podrían afirmar, ayudar no te hace pobre, sino más rico.
  #10 (permalink)  
Antiguo 17/07/2013, 12:18
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 10 meses
Puntos: 320
Respuesta: Require con 3 archivos

Italico, si quieres un ejemplo el problema que tengo es un ejemplo
Cita:
"POST Asincronico/Recepcion_Tablas.php
500 Internal Server Error
42ms
"
si lo ubieses probado lo verias. Tienes razon, INTERPRETE no compilador. Aunque ahora que lo pienso existe php-hip-hop ese si es un compilador php (no es mi caso, pero si existe)


qvixote gracias!! ese era el problema, voy a agregar parches al .htacces con nombres simbolicos (tu segunda opcion)
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #11 (permalink)  
Antiguo 17/07/2013, 12:23
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 10 meses
Puntos: 320
Respuesta: Require con 3 archivos

Otra opcion que se me ocurre es usar rutas absolutas, no es muy elegante pero funcionaria. (lo dejo como 3 alternativa para alguien con el mismo problema)
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #12 (permalink)  
Antiguo 17/07/2013, 12:24
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 16 años, 11 meses
Puntos: 292
Respuesta: Require con 3 archivos

[QUOTE[gracias!! ese era el problema, voy a agregar parches al .htacces con nombres simbolicos (tu segunda opcion)[/QUOTE]

ME ALEGRO haberte ayudado....... LOGICAMENTE era un problema del SERVER pues es quien SIRVE los archivos...y Ud tenia MAL LA RUTA como le dije desde un principio:

Cita:
Iniciado por Italico76 Ver Mensaje
Pues yo si creo que esta mal la ruta y/o nombre del primer archivo incluido / requerido
Ese Error 500 lo pasa el SO a PHP pero como tal... ese codigo de error se genera al intentar acceder a una ruta invalida entre otras tantas cosas.

Cita:
voy a agregar parches al .htacces con nombres simbolicos (tu segunda opcion)
Cita:
Iniciado por Italico76 Ver Mensaje
es un error que arroja el servidor y no es del interprete PHP ... diria puede ser falla en .htaccess
Tu MAYOR problema es que no estas leyendo nada de todo lo que indique...... en fin
__________________
Salu2!

Última edición por Italico76; 17/07/2013 a las 12:34
  #13 (permalink)  
Antiguo 17/07/2013, 12:38
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 10 meses
Puntos: 320
Respuesta: Require con 3 archivos

italico, no quisiera llevarte la contra y no me interesa discuttir, escribe en un archivo php un error de sintaxis por ejemplo
Código PHP:
Ver original
  1. <?php eccho('hol); ?>
y revisa que error recibes, un 500.

otro detalle, mi sitio no tiene ningun .htacces hasta ahora, voy a agregarlo a raiz de este problema.

agradesco de corazon tu interes y tu ayuda desinteresada, pero podrias haber sido mas claro si es que sabias de antemano donde estaba el problema
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #14 (permalink)  
Antiguo 17/07/2013, 12:49
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 16 años, 11 meses
Puntos: 292
Respuesta: Require con 3 archivos

Cita:
Iniciado por NSD Ver Mensaje
italico, no quisiera llevarte la contra y no me interesa discuttir, escribe en un archivo php un error de sintaxis por ejemplo
Código PHP:
Ver original
  1. <?php eccho('hol); ?>
y revisa que error recibes, un 500.
Amigo... pues dependera de muchas cosas,... no se cuales! pero mira lo que me arroja a mi:

Cita:
( ! ) Parse error: syntax error, unexpected ''hol); ?>' (T_ENCAPSED_AND_WHITESPACE), expecting ')' in C:\www\pruebas\test.php on line 1
De hecho jamas vi el error 500, solo lei de él
__________________
Salu2!
  #15 (permalink)  
Antiguo 17/07/2013, 12:54
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 10 meses
Puntos: 320
Respuesta: Require con 3 archivos

porque tienes activado el error_reporting() si lo desactivas (desde el php.ini) o bien agregando a tu script esto:
Código PHP:
Ver original
  1. <?php error_reporting(0); eccho('hol); ?>
veras el dichoso 500
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #16 (permalink)  
Antiguo 17/07/2013, 13:03
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 16 años, 11 meses
Puntos: 292
Respuesta: Require con 3 archivos

No hay caso... je... a mi no me lo muestra nunca... como se ME ALEGRO HAYAS [SOLUCIONADO]

Igualmente NO CREO que un SYNTAX ERROR produzca ERROR 500 .. pues es un WARNING y un error sintactico seria ERROR FATAL
__________________
Salu2!
  #17 (permalink)  
Antiguo 17/07/2013, 13:17
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 7 meses
Puntos: 2237
Respuesta: Require con 3 archivos

Italico76, en algunos servidores PHP y/o Apache están configurados para no mostrar mensajes de error específicos, en su lugar, muestran error 500 y guardan los detalles en un registro (log) de errores.

De hecho, hay que consultar ese archivo para saber a qué se debe el problema.
__________________
- León, Guanajuato
- GV-Foto
  #18 (permalink)  
Antiguo 17/07/2013, 13:52
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 16 años, 11 meses
Puntos: 292
Respuesta: Require con 3 archivos

Cita:
Iniciado por Triby Ver Mensaje
Italico76, en algunos servidores PHP y/o Apache están configurados para no mostrar mensajes de error específicos, en su lugar, muestran error 500 y guardan los detalles en un registro (log) de errores.

De hecho, hay que consultar ese archivo para saber a qué se debe el problema.
Estaba esperandolo por aqui .. en serio, queria me sacaran de la duda... aunque seria una INCONCISTENCIA porque los errores o son "Runtime" o son "Logic" segun SPL (mas alla de que hable de excepciones) ... pero bueno... un FATAL ERROR que seria un "Logic" error pasaria a ser mostrado como un error "Runtime" al salir con Warning.

Gracias
__________________
Salu2!

Última edición por Italico76; 17/07/2013 a las 13:59

Etiquetas: require, tabla
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 12:02.