Foros del Web » Programando para Internet » PHP »

dudas con include

Estas en el tema de dudas con include en el foro de PHP en Foros del Web. Hola, estoy cambiando mi web y pretendo meter la cabecera y le menu principal mediante includes, ya que ambos elementos son comunes a todas las ...
  #1 (permalink)  
Antiguo 14/05/2008, 08:43
Avatar de PedroRodas  
Fecha de Ingreso: noviembre-2005
Ubicación: Cádiz
Mensajes: 393
Antigüedad: 18 años, 4 meses
Puntos: 0
dudas con include

Hola, estoy cambiando mi web y pretendo meter la cabecera y le menu principal mediante includes, ya que ambos elementos son comunes a todas las secciones de mi pagina. En este sentido se me plantean varias dudas:

1.- He leido que no es necesario abrir las etiquetas de html, head etc. pone que solo es necesario escribir el codigo correspondiente a los elementos de la secicon. Por ejemplo para la seccion del menu principal solo tendria que escribir:

<div id="menu_principal">
<ul>
<li><a href="#" title="Enlace genérico">:: Inicio</a></li>
<li>...</li>
<li>...</li>
</ul>
</div>

y guardarlo como .php? la verda es que no se muy bien.

2.- Necesito hacer una hoja de estilos para esta seccion? o al meterla en la pagina con la funcion include, adoptaria los estilos de la hoja de estilos que tenga enlazada la pagina en la que incluimos esta seccion. Me explico, si en la hoja de estilos de la pagina principal tengo el estilo #menu_principal, al meter la seccion con el include, se le aplicarian los estilos por tener el id="menu_principal".

O tal vez necesita su propia pagina de estilos, o declarlos en el mismo archivo, ya que solo es una seccion y por razones de "limpieza" es mas comodo declararlo en el mismo archivo, pero entonces este archivo deberia tener un head para declararlos...

Bueno, como ven ando un poco liado asi que agredeceria mucho vuestras respuestas. Mil gracias de antemano!!!
__________________
Genial concierto de Roger Waters, Pink Floyd siguen vivos!!!
  #2 (permalink)  
Antiguo 14/05/2008, 08:47
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: dudas con include

Hola PedroRodas,

Para que entiendas un poco mejor como funcionan los includes debes de ver mejor como funciona PHP.

PHP es un lenguaje en el servidor, que se ejecuta ANTES del HTML (que es la salida que tu vez en el cliente), al tu hacer un include, PHP lo que hace es donde esta el include, mete el código del archivo, este código a la hora de enviarse al cliente, le llega como un solo archivo HTML, por lo que cualquier CSS que tu hagas automáticamente se va a aplicar, ya que para el explorador es solo 1 página web, no son varias.

Saludos.
  #3 (permalink)  
Antiguo 14/05/2008, 08:59
Avatar de PedroRodas  
Fecha de Ingreso: noviembre-2005
Ubicación: Cádiz
Mensajes: 393
Antigüedad: 18 años, 4 meses
Puntos: 0
Re: dudas con include

muchas gracias por tu respuesta, la parte de mi pregunta correspondiente a tu respuesta me ha quedado muy clara.

Respecto a la otra parte mi pregunta, sobre si tengo que poner todo el tinglao de html, head... al archivo que voi a incluir, segun tu respuesta supongo que no, pero no estoy seguro, y por cierto debo guardarlo como php, como html, o cualquiera de las dos es correcta.

Muchisimas gracias.
__________________
Genial concierto de Roger Waters, Pink Floyd siguen vivos!!!
  #4 (permalink)  
Antiguo 14/05/2008, 09:07
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: dudas con include

Hola PedroRodas,

Si lees bien mi respuesta veras que no debes de poner el html porque como te digo, el código se incluye tal cual, no se evalúa, ya que eso se hace hasta el cliente, ve el siguiente ejemplo:
pagina1.php:
Código PHP:
<html>
<head>
<title>mi pagina</title>
</head>
<body>
<div>
<?php include("pagina2.php"); ?>
</div>
</body>
</html>
pagina2.php:
Código PHP:
<p>hola!!</p
Al tu hacer un request por pagina1.php, PHP, ve el include, toma el contenido y lo pega en donde va, y le envía esto al cliente:
Código HTML:
<html>
<head>
<title>mi pagina</title>
</head>
<body>
<div>
<p>hola!!</p>
</div>
</body>
</html> 
Si te fijas en el resultado no hay nada de PHP, ya que PHP solo se ejecuta en el servidor, y le envía al cliente todo el resultado HTML, si tu incluyes todas las cabeceras en tu pagina2.php, acabas con un archivo HTML mal formado.

Saludos.
  #5 (permalink)  
Antiguo 14/05/2008, 09:33
Avatar de PedroRodas  
Fecha de Ingreso: noviembre-2005
Ubicación: Cádiz
Mensajes: 393
Antigüedad: 18 años, 4 meses
Puntos: 0
Re: dudas con include

Hola, muchas gracias, lo he entendido muy bien, ahora esoy volviendolo a estudiar en mi manual y lo entiendo mucho mejor.

Pero no puedo hacer justo lo que queria. En la seccion "cabecera.html" solo hay el siguiente codigo:

Código:
<div id=cabecera>
</div>
Lo unico que tiene que hacer es cargarse los estilos css correspondientes a #cabecera:

Código:
#cabecera{
width:760px;
height:100px;
background:#fff url(../imgs1/cabecera.png) no-repeat;
}
Pero da error creo que porque el div no contiene nada, ya que si pongo un <p>hola</p> dentro del div si lo carga correctamente. Puedo cargar de alguna forma cabecera.html sin que me de error dado el codigo que tiene? o siempre me va a dar error por estar vacio el div? Ademas no se aplican los estilos de id="cabecera" que estan contenidos en index.php, que es donde se hace el <?php include("cabecera.html"); ?>
__________________
Genial concierto de Roger Waters, Pink Floyd siguen vivos!!!

Última edición por PedroRodas; 14/05/2008 a las 09:41
  #6 (permalink)  
Antiguo 14/05/2008, 09:47
Avatar de PedroRodas  
Fecha de Ingreso: noviembre-2005
Ubicación: Cádiz
Mensajes: 393
Antigüedad: 18 años, 4 meses
Puntos: 0
Re: dudas con include

ok, solucionado. Muchas gracias a GatorV. Era un error en la url de las imagenes.
__________________
Genial concierto de Roger Waters, Pink Floyd siguen vivos!!!
  #7 (permalink)  
Antiguo 14/05/2008, 11:21
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: dudas con include

Hola PedroRodas,

Recuerda que si tienes un error de CSS/HTML, no es precisamente de PHP, para futura referencia, una forma muy buena de hacer las cosas es primero diseñar todo en HTML, y asegurarte que funciona correctamente, por ejemplo una plantilla, posteriormente ya que ves que funciona con su Javascript y CSS, entonces empiezas a partirla y meterla con includes.

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 09:49.