Foros del Web » Programando para Internet » PHP »

Problemas con require_once()

Estas en el tema de Problemas con require_once() en el foro de PHP en Foros del Web. Despues de un riguroso estudio viendo cual era el fallo para que me diera el error Código: Warning: require_once(tfirma.php) [function.require-once]: failed to open stream: No ...
  #1 (permalink)  
Antiguo 15/12/2008, 13:27
Avatar de rudy69  
Fecha de Ingreso: octubre-2008
Ubicación: espndeportes.com
Mensajes: 195
Antigüedad: 15 años, 6 meses
Puntos: 7
Problemas con require_once()

Despues de un riguroso estudio viendo cual era el fallo para que me diera el error

Código:
Warning: require_once(tfirma.php) [function.require-once]: failed to open stream: No such file or directory in C:\Servidor\wamp\www\eym\servicios\servicios.php on line 121

Fatal error: require_once() [function.require]: Failed opening required 'tfirma.php' (include_path='.;C:\php5\pear') in C:\Servidor\wamp\www\eym\servicios\servicios.php on line 121
Me di cuenta que era la direccion

tenia

Código PHP:
<?php require_once("/eym/recursos/firma.php");
piedePagina(); ?>
la direccion es correcta, el archivo se encuentra ahi, el error supongo que esta en que esta mal digitada la direccion comillas o otra cosa, la solucion que le tube que dar fue copiar a la misma carpeta el archivo para no tener que usar plecas( / ), y funciono, mi pregunta cual es la forma correcta?

para buscar imagenes lo hago asi y no hay problemas

Código PHP:
echo "<img src=\"/eym/imagenes/bullet_cross.PNG\" />"
Cual es la forma correcta?? probe:

Código PHP:
<?php require_once("/eym/recursos/firma.php");
piedePagina(); ?>

<?php require_once("/eym/recursos/firma.php\");
piedePagina(); ?>

<?php require_once("
eym/recursos/firma.php");
piedePagina(); ?>

<?php require_once("
/recursos/firma.php);
piedePagina(); ?>
en resumen, no funcionaron todas mis ideas, plecas invertidas etc ( \ )

la forma final quedo asi
Código PHP:
<?php require_once("firma.php");
piedePagina(); ?>

Última edición por rudy69; 15/12/2008 a las 16:44
  #2 (permalink)  
Antiguo 15/12/2008, 13:33
Avatar de Snd234  
Fecha de Ingreso: mayo-2007
Ubicación: Frente al PC
Mensajes: 413
Antigüedad: 16 años, 10 meses
Puntos: 2
Respuesta: Problemas con require_once()

Código PHP:
<?php require_once("eym/recursos/firma.php"); ?>
Sin la barra inicial, ya que se supone que la carpeta eym esta en el mismo directorio que tu script.
__________________
KIBIT.cl
  #3 (permalink)  
Antiguo 15/12/2008, 16:40
Avatar de rudy69  
Fecha de Ingreso: octubre-2008
Ubicación: espndeportes.com
Mensajes: 195
Antigüedad: 15 años, 6 meses
Puntos: 7
Respuesta: Problemas con require_once()

Lamento informarte que no es asi, de hecho lo puse ahi en todos los experimentos que hice xD

Necesito saber porque no tiene gracia andar copiando ese archivo en cada carpeta, si lo modifico tendria que cambiarlos todos
  #4 (permalink)  
Antiguo 15/12/2008, 16:46
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problemas con require_once()

De hecho el problema es al entender como funciona el filesystem local vs la direccion url, y como html se procesa en el cliente y PHP en el servidor.

la etiqueta <img> es HTML esta se procesa en el cliente, al tu decirle busca una imagen en: /eym/imagenes/bullet_cross.PNG, lo que hace el browser es ver la direccion y hace un request HTTP a http://tupagina.com/eym/imagenes/bullet_cross.PNG y muestra la imagen.

Al tu en PHP decirle, require_once( "/eym/recursos/firma.php" ); PHP no actua como el browser, si no que busca en el filesystem local, si conoces un poco de Unix te podras dar cuenta que / representa el root del sistema de archivos, entonces que hace PHP? Busca desde ROOT, en la carpeta eym/recursos/firma.php, la cual es incorrecta.

Para que tu require_once funcione tienes que pasarle la ruta desde tu script php actual, la forma mas facil es hacer un echo getcwd(); esto te imprime la ruta actual, p.e. /var/www/eym/archivo.php, entonces ahi te puedes dar cuenta que firma.php, esta en recursos, asi que basta que hagas un require_once('recursos/firma.php');

Espero hayas entendido como PHP busca las rutas y porque se diferencia de lo que haces en HTML.

Saludos.
  #5 (permalink)  
Antiguo 15/12/2008, 18:39
Avatar de rudy69  
Fecha de Ingreso: octubre-2008
Ubicación: espndeportes.com
Mensajes: 195
Antigüedad: 15 años, 6 meses
Puntos: 7
Respuesta: Problemas con require_once()

Lamento informarte esto pero no funciono, pero la explicacion estubo buena y algo me ha ayudado a entender del lenguaje
  #6 (permalink)  
Antiguo 15/12/2008, 20:09
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problemas con require_once()

No te estaba dando una solucion especifica, el punto es que entiendas como PHP navega por las carpetas, tienes que adaptar tu ejemplo a tu caso especifico.

Saludos.
  #7 (permalink)  
Antiguo 15/12/2008, 20:17
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Problemas con require_once()

Cita:
Iniciado por rudy69 Ver Mensaje
Lamento informarte que no es asi, de hecho lo puse ahi en todos los experimentos que hice xD

Necesito saber porque no tiene gracia andar copiando ese archivo en cada carpeta, si lo modifico tendria que cambiarlos todos
Cita:
Lamento informarte esto pero no funciono, pero la explicacion estubo buena y algo me ha ayudado a entender del lenguaje
Hmm, lamento informarte que tienes un lio tremendo. No puede ser que GatorV y Snd234 esten mal.

Apuesto a que si le dieramos un vistazo a la estrutura de tus archivos podriamos encontrar el error.
  #8 (permalink)  
Antiguo 15/12/2008, 20:31
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problemas con require_once()

estoy con todos....

hay que poner mas atención en las rutas, ya sean absolutas.. o relativas

D:\a\b\c.php
D:\x.php
./y/d.php
/otro/path/img/
img/

en el archivo c vamos a incluir el archivo x ..

D:\a\b\c.php
Código:
include '../../x.php';
desde el archivo d estamos subiendo las imágenes, pero las debemos guardar en img/

./y/d.php
Código:
$path = './img/';
el ./ equivale a la raíz donde están tus scripts, www/ o htdocs/ por lo general

por cada ../ se sube una ruta a la ves, no mas....


de ahí, necesitas tan solo usar la ruta que te convenga... obviamente, al existir script en distintas rutas... la misma función de include necesita su respectiva ruta real ...

como bien dice GatorV ... usa getcwd() para obtener la ruta actual de trabajo...
o usa, dirname y __FILE__ para indagar la ruta actual del script...

es cuestión de análisis, y si... coincido, nadie puede estas mas confundido que tu, suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 15/12/2008, 21:04
Avatar de rudy69  
Fecha de Ingreso: octubre-2008
Ubicación: espndeportes.com
Mensajes: 195
Antigüedad: 15 años, 6 meses
Puntos: 7
Respuesta: Problemas con require_once()

Funciona asi:
Código PHP:
<?php require_once("firma.php");
piedePagina(); ?>
Estando el archivo en la misma carpeta que la pagina

La pagina firma tiene
Código PHP:
<?php function piedePagina() { ?>
<b><font color=white size="-1" face="arial, helvetica">Envios Y Mas ®</font><br>
<font color=white size="-2" face="arial, helvetica">Elaborado por Rudy PHP4 & MYSQL5.0</font></b>
<?php }  ?>
No funciona de las maneras que me han dicho GatoroV y Snd123
  #10 (permalink)  
Antiguo 15/12/2008, 21:22
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problemas con require_once()

Cita:
Iniciado por rudy69 Ver Mensaje
Funciona asi: [...]

Estando el archivo en la misma carpeta que la pagina [...]
¿que pretendes???




¿ahora cual es el problema???
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #11 (permalink)  
Antiguo 16/12/2008, 11:36
Avatar de rudy69  
Fecha de Ingreso: octubre-2008
Ubicación: espndeportes.com
Mensajes: 195
Antigüedad: 15 años, 6 meses
Puntos: 7
Respuesta: Problemas con require_once()

Me ofende la pregunta pero la tengo que responder xD
que pretendo? si esta en la misma carpeta, eso significa que todas las otras paginas que estan en carpetas diferente tengo que pegar ese archivo ahi, si agrego mofidico o sea lo que sea a ese archivo tendria que hacerlo en todos no???
  #12 (permalink)  
Antiguo 16/12/2008, 12:12
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problemas con require_once()

No, si usas la ruta correcta tu puedes poner el archivo firma.php en donde requieras, si lees y entiendes mi explicacion, solamente vas a tener que poner la ruta correcta a tu archivo para poderlo incluir.

Saludos.
  #13 (permalink)  
Antiguo 16/12/2008, 12:42
Avatar de rudy69  
Fecha de Ingreso: octubre-2008
Ubicación: espndeportes.com
Mensajes: 195
Antigüedad: 15 años, 6 meses
Puntos: 7
Respuesta: Problemas con require_once()

GatorV gracias a tu explicacion reaccione

PHP trabaja al lado del servidor, por lo tanto hay que poner la ruta donde se aloja el archivo (no se si lo habre explicado bien)

Problema resuelto, Codigo correcto es:

Código PHP:
<?php require_once("C:/wamp/www/eym/recursos/firma.php");
piedePagina(); ?>
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 09:19.