Foros del Web » Programando para Internet » PHP »

<?php include ? > no me funciona desde otro nivel

Estas en el tema de <?php include ? > no me funciona desde otro nivel en el foro de PHP en Foros del Web. Mi problema es el siguiente: tengo una web así: un index.php al cual le he metido el siguiente código <?php include("includes/cabecera.html"); ?> me funciona perfecto, ...
  #1 (permalink)  
Antiguo 17/05/2008, 20:53
 
Fecha de Ingreso: julio-2006
Ubicación: Colombia
Mensajes: 16
Antigüedad: 17 años, 9 meses
Puntos: 2
<?php include ? > no me funciona desde otro nivel

Mi problema es el siguiente:

tengo una web así: un index.php al cual le he metido el siguiente código

<?php include("includes/cabecera.html"); ?>

me funciona perfecto, cuando voy desde el menu en index.php a cualquier link como por ejemplo /salud.html que se encuentra en una carpeta llamada artículos todo sigue funcionando bien.
ahora quiero que desde /salud.html tambien se pueda llamar la cabecera con un include pero en este caso no me funciona, para ello he usado este código

<?php include("../includes/cabecera.html"); ?>

si saben que puede estar mal les recomiendo me den una mano
  #2 (permalink)  
Antiguo 17/05/2008, 22:35
 
Fecha de Ingreso: enero-2007
Mensajes: 272
Antigüedad: 17 años, 4 meses
Puntos: 5
Respuesta: <?php include ? > no me funciona desde otro nivel

Hola:

Al hacer un include no te mueves fisicamente a ese directorio, por lo tanto el .. está demás, intenta poner tal como lo habías hecho anteriormente.

$_SERVER['SELF'] podría darte una luces de lo que me refiero.

Saludos.-
  #3 (permalink)  
Antiguo 17/05/2008, 22:44
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Respuesta: <?php include ? > no me funciona desde otro nivel

mmm y cual es la duda? si le funciona ??? o sea pregunta por que en un caso funciona sin los ../ y con otros casos con los ../ pues es por el tema de accesibilidad pues le explico.....

tenemos una carpeta llamada FOLDER en esta carpeta hay una imagen llamada hola.jpg y un archivo llamado index.php

si llamo la imagen <img src="hola.jpg"> me ira bien cierto si hago <img src="../hola.jpg"> ya no ira por que esta buscando como pone un directorio atras dicho archivo si fueran dos ditectorios atras seria <img src="../../hola.jpg"> si fueran dos adelante <img src="direct1/direct2/hola.jpg">
etc... se entiende????
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #4 (permalink)  
Antiguo 18/05/2008, 07:03
 
Fecha de Ingreso: julio-2006
Ubicación: Colombia
Mensajes: 16
Antigüedad: 17 años, 9 meses
Puntos: 2
Respuesta: <?php include ? > no me funciona desde otro nivel

Hola de nuevo para aclarar más la pregunta sobre los includes.
tengo:

http://127.0.0.1/alias1/index.php
en el mismo lugar donde esta el index.php he creado un directorio de nombre includes con dos archivos .html dentro, y otro directorio llamado secciones con varios archivos .html que son las diferentes secciones de mi web; dentro de index.php he realizado dos includes que funcionan perfecto con este código.
<html>
<head><title>index</title></head>
<body>
<?php include("includes/cabecera.html"); ?>
<?php include("includes/menu.html"); ?>
</body>
<html>

ahora el problema:
cuando voy a alguna de las secciones en la cual también he agregado includes para cargar la cabecera.html y el menu.html así:

<html>
<head><title>salud</title></head>
<body>
<?php include("../includes/cabecera.html"); ?>
<?php include("../includes/menu.html"); ?>
</body>
<html>

no me carga la orden del include, ahora lo que hice fue cambiar la extención .html de la sección por .php y puedo ver el menu; diseñado en html y css pero no la cabecera que contiene una pelicula flash ese espacio esta en blanco y dice no se cargo la pelicula.

No entiendo que pasa si en en el index.php veo todo y no el las secciones siendo los mismos archivos, ahora por que sucede eso al cambiar el tipo de archivo, no se supone que los includes pueden hacer llamadas a ese tipo de extención.
nuevamente mil gracias

Última edición por dmomentor; 18/05/2008 a las 07:04 Razón: hacer claridad en rutas
  #5 (permalink)  
Antiguo 18/05/2008, 14:14
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: <?php include ? > no me funciona desde otro nivel

Desde un archivo html NO podés usar código PHP, el servidor no lo interpretará a menos que lo configures específicamente para hacerlo. El archivo tiene que tener extensión PHP.

Sí podés usar "include" para llamar a cualquier clase de archivo, pero ese es un tema completamente diferente.

Si ves el menú y la cabecera, quiere decir que las inclusiones se están haciendo correctamente.
El tema de flash ya no es PHP sino html, revisá si estás vinculando bien el archivo.

Solo como comentario, tené en cuenta que en las rutas HTML podés usar / para referenciar a la raíz del sitio.

Por ejemplo, si tu archivo flash está en "/flash/archivo.swf", vincularlo así lo hará accesible desde cualquier carpeta.

Pero cuidado, esto no funciona con código PHP ya que para PHP "/" no es la raíz del sitio sino la raíz del sistema de archivos.


Saludos.
  #6 (permalink)  
Antiguo 20/05/2008, 07:20
 
Fecha de Ingreso: julio-2006
Ubicación: Colombia
Mensajes: 16
Antigüedad: 17 años, 9 meses
Puntos: 2
Respuesta: <?php include ? > no me funciona desde otro nivel

Es más facial verlo de esta forma creo:


bueno en index.php tengo este include que funciona bien y me deja ver el contenido de la cabezera "la cabezera esta diseñada en flash y a su vez las peliculas están en la carpeta que vemos con el nombre; swf ", en este caso el php me funciona con el siguiente código:
Código PHP:
<?php include("includes/cabezera.html"); ?>

hay un menu en index.php para ir a el archivo salud.php, cuando me dirijo a este enlace y hago clic veo todo lo que tiene que ver con html pero no me carga la películas flash es decir el include no me funciona, este es el codigo php que utilizo para este caso:
Código PHP:
<?php include("../includes/cabezera.html"); ?>
Sinceramente creo que no entiendo si en php las rutas tienen un tratamiento diferente con respecto a ../ para referirse a un directorio que esta en otro nivel, es más les agradezco me sugieran como se deben organizar las carpetas en el servidor para poder optimizar el trabajo con todo esta de los enlaces y obviamente haciendo referencia a la seguridad; segun mi dibujo cuales son mis fallas.

agradezco el tiempo de todos
  #7 (permalink)  
Antiguo 20/05/2008, 08:37
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: <?php include ? > no me funciona desde otro nivel

Hola dmomentor,

Tu problema es que en tu carpeta salud, al incluir cabezera.html lo incluye correctamente, ya que esta el path bien, pero tu explorador al evaluar el html resultante, ve los objetos de flash y los quiere leer desde /www/articulos/swf/archivo.swf, cosa que es incorrecta ya que no existe.

Para solucionar tu problema te recomiendo uses paths absolutos en tu html, por ejemplo en lugar de leer un swf como: swf/archivo.swf, lo hagas usando su path absoluto: /www/swf/archivo.swf.

Saludos.
  #8 (permalink)  
Antiguo 20/05/2008, 09:55
 
Fecha de Ingreso: julio-2006
Ubicación: Colombia
Mensajes: 16
Antigüedad: 17 años, 9 meses
Puntos: 2
Respuesta: <?php include ? > no me funciona desde otro nivel

Gatorv

mira cuando hablo de www y en el dibujo quiero referirme a la carpeta public_html o www en el servidor local, acabo de hacer lo que dices y no funciona ni siquiera ahora veo la película en el index.
  #9 (permalink)  
Antiguo 20/05/2008, 10:49
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: <?php include ? > no me funciona desde otro nivel

antes de hacer un include... hay que comprobar la existencia del archivo.... ya que no es lo mismo.... ../www/swf que ./www/swf o simplemente /www/swf o www/swf ... te recomiendo que si no te lanza error, minimo compruebas que es... un archivo real, con is_file()
  #10 (permalink)  
Antiguo 20/05/2008, 12:30
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: <?php include ? > no me funciona desde otro nivel

A lo que me refería, era hablar genéricamente, debes de incluir desde la carpeta raiz, por ejemplo si la URL a una película es:
Código:
http://pagina.com/archivos/includes/swf/archivo.swf
La ruta absoluta sería:
Código:
/archivos/includes/swf/archivo.swf
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 18:18.