Foros del Web » Programando para Internet » PHP »

Sobre includes en PHP

Estas en el tema de Sobre includes en PHP en el foro de PHP en Foros del Web. Hola amigos de ForosDelWeb. Antes que nada, destaco que soy un completo novato en PHP y aunque trato de aprender, no me es fácil. El ...
  #1 (permalink)  
Antiguo 20/12/2008, 03:05
 
Fecha de Ingreso: julio-2008
Ubicación: Córdoba, Argentina
Mensajes: 266
Antigüedad: 15 años, 9 meses
Puntos: 26
Sobre includes en PHP

Hola amigos de ForosDelWeb. Antes que nada, destaco que soy un completo novato en PHP y aunque trato de aprender, no me es fácil. El tema es que tengo un sitio hecho puramente en HTML y me gustaría comenzar a usar más funciones de PHP para hacer el sitio más liviano, sencillo, más profesional y además por el hecho de conocer y aprender sobre este lenguaje. Yo tengo un sitio donde los menús se repiten en todas las secciones, y para no repetir el HTML en todas usé includes de PHP (son 3 menús: uno izquierdo, uno superior y otro derecho). Sin embargo, yo sigo teniendo repetido todo el diseño de las páginas con el contenido y el único espacio que ahorro es el de los menús. Pero según estuve viendo en un tutorial aquí: http://www.desarrolloweb.com/articulos/2472.php
Dicen que si hago el menú en una plantilla general, de esta forma (que lógicamente lo personalicé un poco, saqué las etiquetas de lista y modifiqué el texto de Sección 1, 2 y 3, pero esto no afecta en nada según yo creo).:
Código:
<td width="20%"><p>Menu principal</p>
<ul>
<li><a href="?sec=1">Secci&oacute;n 1 </a></li>
<li><a href="?sec=2">Secci&oacute;n 2 </a></li>
<li><a href="?sec=3">Secci&oacute;n 3 </a></li>
</ul></td>
Podría abrir en esa misma plantilla cada página a la que apuntan las secciones del menú, colocando este código PHP en el contenido (igual aquí: saqué el .html porque sólo uso extensiones .php y también cambié presentacion.html por noticias.php; tampoco afecta, creo):
Código:
<?php
if(empty($sec))
{
include("presentacion.html");
}
else
{
if(file_exists($sec.".php"))
include($sec.".php");
elseif(file_exists($sec.".html"))
include($sec.".html");
else
echo 'Perdón pero la página solicitada no existe';
}
?>
El problema es que lo he probado y el if(empty($sec)) me lo muestra correctamente (que sería presentacion.html o noticias.php en mi caso), pero al hacer clic sobre los elementos del menú (Sección 1, 2 y 3; que apuntan a ../plantilla.php?sec=1, 2 y 3) no sucede nada, cuando se debería abrir por ejemplo 1.php ó 1.html, y esos archivos sí existen (ya sé que sólo se abre uno, el PHP por estar primero, pero no viene al caso ya que eso no influye). No sé si hay que realizar un cambio en el código o qué, la verdad es que me confunde bastante. Vi también que se podían usar unos switches, pero parecía más largo. Saludos y gracias de antemano.

Última edición por RabidFish; 20/12/2008 a las 06:25
  #2 (permalink)  
Antiguo 20/12/2008, 07:41
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 8 meses
Puntos: 55
Respuesta: Sobre includes en PHP

es pq no tenes habilitado register_globals, ya que por recomendacion viene deshabilitado y ademas va a desaparecer
solucion
pones antes del if
$sec=$_GET['sec'];
o cambias todos los $sec por $_GET['sec']

consejo, antes de usar file_exists() usa is_file() ya que esta busca el archivo y la otra busca el archivo y sino el directorio

saludos
__________________
Degiovanni Emilio
developtus.com
  #3 (permalink)  
Antiguo 20/12/2008, 07:42
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 16 años
Puntos: 43
Respuesta: Sobre includes en PHP

Si estas enviando variables por URL, deberías retomarlas con $_GET.
Ejemplo:
Código PHP:
if(empty($_GET['sec']))
{
include(
"presentacion.html");
}
else
{
....... 
Saludos

EDITO: Disculpa, fue un gran choque
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #4 (permalink)  
Antiguo 20/12/2008, 08:10
 
Fecha de Ingreso: julio-2008
Ubicación: Córdoba, Argentina
Mensajes: 266
Antigüedad: 15 años, 9 meses
Puntos: 26
Respuesta: Sobre includes en PHP

Muchísimas gracias, pude hacerlo reemplazando los $sec por $_GET['sec']. Ahora tengo otra consulta, yo eso lo hice en la carpeta raíz de la web, pero también tengo varias subcarpetas que serían las categorías de las secciones y en cada una están las imágenes y demás, incluídos archivos PHP (las secciones propiamente dichas). ¿Cómo debería hacer con esos? ¿Debería crear una planilla en cada subcarpeta? ¿Cómo hago para que los links vayan a archivos de otras subcarpetas que están en el mismo nivel (si es que se puede)? No se si me recomiendan insistir con esto o directamente usar includes para los 3 menús y listo. Otra consulta que hago de paso, si en vez de mostrar esto: echo 'Perdón pero la página solicitada no existe'; quisiera que aparezca la página de error personalizada que tengo en www.dominio.com/error/404.php, ¿cómo hago para que se abra ese archivo en caso de no existir el buscado? Saludos y gracias de nuevo.

Editado: Grafico lo que dije recién por si no se entendió bien:
CARPETA RAÍZ
.|_Sub-carpeta 1 (categoría 1)
.|...|_Archivo PHP 1 (sección 1)
.|...|_Archivo PHP 2 (sección 2)
.|...|_Archivo PHP 3 (sección 3)
.|_Sub-carpeta 2 (categoría 2)
.....|_Archivo PHP 1 (sección 1)
.....|_Archivo PHP 2 (sección 2)
.....|_Archivo PHP 3 (sección 3)
Quiero saber si debo hacer una planilla en cada categoría y cómo hacer links por ejemplo de la sección 1 de la categoría 1 a la sección 1 de la categoría 2. Si creen que es mejor hacer include de los menús en archivos separados, ignoren lo que pregunté antes y listo, jeje.

Última edición por RabidFish; 20/12/2008 a las 08:45
  #5 (permalink)  
Antiguo 21/12/2008, 06:50
 
Fecha de Ingreso: julio-2008
Ubicación: Córdoba, Argentina
Mensajes: 266
Antigüedad: 15 años, 9 meses
Puntos: 26
Respuesta: Sobre includes en PHP

Uh, disculpen el doble-post.
  #6 (permalink)  
Antiguo 21/12/2008, 08:04
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 8 meses
Puntos: 55
Respuesta: Sobre includes en PHP

y bueno si las carpetas siguen ese patron "_subcarpeta*numeroSeccion*"

include('_subcarpeta'.$_GET['sec].'/'.$_GET['sec].'.php');

y asi sucesivamente
__________________
Degiovanni Emilio
developtus.com
  #7 (permalink)  
Antiguo 21/12/2008, 09:11
 
Fecha de Ingreso: julio-2008
Ubicación: Córdoba, Argentina
Mensajes: 266
Antigüedad: 15 años, 9 meses
Puntos: 26
Respuesta: Sobre includes en PHP

Gracias por responder pero no me queda muy claro, ¿los links deberían incluir el nombre de la carpeta o solo le pongo el nombre del archivo PHP? Porque de alguna forma tengo que señalar que busque en determinada capreta, ¿no? Tanto en el menú como en el PHP de la plantilla. Por otro lado, ¿esto: include('_subcarpeta'.$_GET['sec].'/'.$_GET['sec].'.php'); debo ponerlo en el código de la plantilla y debo hacer una linea para cada carpeta, por ejemplo include('categoria1'.$_GET['sec].'/'.$_GET['sec].'.php');, include('categoria2'.$_GET['sec].'/'.$_GET['sec].'.php');, etc. o tengo que hacer que el is_file busque en la misma carpeta y además en las subcarpetas?.
Además de eso me queda por aclarar esta otra duda:
Cita:
Otra consulta que hago de paso, si en vez de mostrar esto: echo 'Perdón pero la página solicitada no existe'; quisiera que aparezca la página de error personalizada que tengo en www.dominio.com/error/404.php, ¿cómo hago para que se abra ese archivo en caso de no existir el buscado?
Ah y ahora que pienso, hay otra cosa que no me queda clara: si yo por ejemplo estoy en la secicón de Noticias (o sea el if(empty($sec))) y voy a la de Contacto (que aparece por un include dentro de la misma plantilla), ¿cómo cambio el título de la página? Porque supongo que seguirá estando el que había el index.php que contiene los includes, y si le agrego un <head> distinto a la página que aparece por include, creo que no funcionará y sólo agregaré más código inservible.
Disculpen la ignorancia pero recién empiezo con esto. Saludos.

Última edición por RabidFish; 21/12/2008 a las 16:53
  #8 (permalink)  
Antiguo 22/12/2008, 12:08
 
Fecha de Ingreso: julio-2008
Ubicación: Córdoba, Argentina
Mensajes: 266
Antigüedad: 15 años, 9 meses
Puntos: 26
Respuesta: Sobre includes en PHP

¿Ninguna ayuda?
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 07:07.