Foros del Web » Programando para Internet » PHP »

Recomendaciones: comenzando Web Modular

Estas en el tema de Recomendaciones: comenzando Web Modular en el foro de PHP en Foros del Web. Hola gente: Estoy comenzando a re-diseñar mi sitio Web y quiero hacerlo Modular, simplemente porque creo que ya puedo dejar de meter trozos de php ...
  #1 (permalink)  
Antiguo 05/03/2005, 12:28
Avatar de FuLaNo_  
Fecha de Ingreso: mayo-2003
Ubicación: Don Torcuato, Buenos Aires, Argentina
Mensajes: 1.250
Antigüedad: 20 años, 11 meses
Puntos: 2
Recomendaciones: comenzando Web Modular

Hola gente:

Estoy comenzando a re-diseñar mi sitio Web y quiero hacerlo Modular, simplemente porque creo que ya puedo dejar de meter trozos de php en el HTML y hacer algo más prolijo.

Como no tengo apuro en hacerlo (me da lo mismo terminarlo mañana o dentro de 5 meces...) quiero hacerlo bien, para luego no andar metiéndole parches por todos lados porque funciona lento o es vulnerable...

Mi primer pregunta es, cual sería la mejor forma de llamar a los módulos? estaba pensando en hacer algo así:
index.php
Código PHP:
<?
switch ($_GET['id']) {
case 
'home':
include(
"includes/html.php");
include(
"includes/top.php");
include(
"includes/home.php");
include(
"includes/bottom.php");
include(
"includes/fhtml.php");
break;
case 
'legal':
include(
"includes/html.php");
include(
"includes/top.php");
include(
"includes/nota_legal.php");
include(
"includes/bottom.php");
include(
"includes/fhtml.php");
break;
case 
'probando':
include(
"includes/html.php");
include(
"includes/top.php");
include(
"includes/probando_1.php");
include(
"includes/bottom.php");
include(
"includes/fhtml.php");
break;
default:
include(
"includes/html.php");
include(
"includes/top.php");
include(
"includes/home.php");
include(
"includes/bottom.php");
include(
"includes/fhtml.php");
break;
}
?>
En donde html.php contendría los tag de apertura de html + los metatags y todo lo que vaya en el head, top.php sería una tabla que contiene la "cabecera" del sitio, el tercer include contendría todo el contenido, bottom.php sería el pie de pagina (en caso de que sea siempre el mismo) y fhtml.php tendría los cierres de tags HTML.

Mi pregunta es si es una buena manera de hacerlo.

Al index.php llegaría de esta forma http://www.dominio.com.ar/?id=variable_si_corresponde

Bueno, en fin, quisiera tener la opinión de algún experto para comenzar con esto.

PD: Ténganme paciencia que soy nuevo en esto
__________________
I Love Programming...
  #2 (permalink)  
Antiguo 06/03/2005, 10:25
Avatar de Chichoauza  
Fecha de Ingreso: enero-2005
Mensajes: 106
Antigüedad: 19 años, 3 meses
Puntos: 0
yo habia estructurado un web modular de la siguiente manera, pero no se si sera la mejor opción...


Código:
<?
$path=$_GET["path"];
?>
<html>
<head>
<? include("files/meta-tags.php") ?>
</head>
<body>
<!-- ADORNOS HTML... -->
<? include("files/enc.php") ?>
<!-- MAS ADORNOS HTML... -->
 
<? include("$path") ?>
 
<!-- MAS ADORNOS HTML... -->
<? include("files/pie.php") ?>
</body>
</html>

La variable path es la que me traeria el contenido, por ejemplo: http://www.mi-sitio.com.ar/?path=manuales/manual.php

je, ustedes diran...

saludos...

Última edición por Chichoauza; 06/03/2005 a las 10:28
  #3 (permalink)  
Antiguo 06/03/2005, 10:30
Avatar de FuLaNo_  
Fecha de Ingreso: mayo-2003
Ubicación: Don Torcuato, Buenos Aires, Argentina
Mensajes: 1.250
Antigüedad: 20 años, 11 meses
Puntos: 2
...esa manera no es para nada buena, o por lo menos a mi vista deja muchas fallas de seguridad, uno puede pasarte path=../../algun_archivo y ver algun archivo importante de tu sitio

Entiendes a lo que voy?, de la manera que hice yo con swicht solo cargará un archivo que este predefinido por mi, por lo que si tu pones id=../../../loquesea se ejecutara el "default" e ira directo a la portada del sitio...

Pero no se si es lo mas recomendable, por el momento es lo mas seguro que encontre y carga rapido una pagina sensilla, pero quisiera saber si cuando la pagina este completa (miles de tablas y demas) será el mejor metodo para cargarla, quizas haya uno mas rapido y seguro.

Saludos
__________________
I Love Programming...
  #4 (permalink)  
Antiguo 06/03/2005, 10:38
Avatar de Chichoauza  
Fecha de Ingreso: enero-2005
Mensajes: 106
Antigüedad: 19 años, 3 meses
Puntos: 0
si,si totalmetnde de acuerdo, pero se pudede impedir el uso de entradas del estilo "../../"

que me dicen?
  #5 (permalink)  
Antiguo 06/03/2005, 10:58
Avatar de Chichoauza  
Fecha de Ingreso: enero-2005
Mensajes: 106
Antigüedad: 19 años, 3 meses
Puntos: 0
...me quede preocupado

aver, a lo que me refiero es de colocar algo como esto, cosa de cerrar los huecos de seguridad que dices.

Código PHP:
<?
 $path 
"../../notocar.php"
 
$parte explode("../"$path);
 for(
$i=0$i<sizeof($parte); $i++){
 if(
$parte[$i]=="../"){
 echo 
"Estas haciendo algo malo :D";
 
$path "error.php";
 
//muestro una página de error que diga que el documento no existe o algo asi :D
 
}
 }
?>
aver, los que mas saben

saludos
  #6 (permalink)  
Antiguo 06/03/2005, 11:22
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 3 meses
Puntos: 7
Cita:
Iniciado por FuLaNo_
Estoy comenzando a re-diseñar mi sitio Web y quiero hacerlo Modular, simplemente porque creo que ya puedo dejar de meter trozos de php en el HTML y hacer algo más prolijo.
Si ese es el caso, entonces te recomiendo que utilizes algún manejador de plantillas, ya que permiten separar la lógica de la presentación y me parece que es lo ideal para tus necesidades, un claro ejemplo de esto puede ser hotscripts.com que usa Smarty (http://smarty.php.net), aquí la lista de sitios que usan Smarty:
http://smarty.incutio.com/?page=SitesUsingSmarty

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #7 (permalink)  
Antiguo 06/03/2005, 17:39
 
Fecha de Ingreso: marzo-2005
Mensajes: 9
Antigüedad: 19 años, 1 mes
Puntos: 0
supongo q con el swich seria mejor pero yo lo hice asi ? :

.................................................. .................................

<html>...

<-- titulo de la pag..otras cosas, .. algun otro include -->

<a href="?ver=Programas"> programas </a> ...
----------------------------------------------------------------------
<?
if($ver==Programas){ include("programas.php"); }
elseif($ver==Juegos){ include("juegos.php"); }
elseif($ver==Humor){ include("humor.php"); }
elseif($ver==Contacto){ include("contacto.php"); }
elseif($ver==Links){ include("links.php"); }
elseif($ver==Guestbook){ include("gsbook.php"); }
elseif($ver==Login){ include("login.php"); }
elseif($ver==Aviso){ include("aviso.php"); }
else{ include("main.php"); }
?>

...</html>
  #8 (permalink)  
Antiguo 06/03/2005, 17:47
 
Fecha de Ingreso: marzo-2005
Mensajes: 9
Antigüedad: 19 años, 1 mes
Puntos: 0
hace este que es igual que al que pusiste vos pero simplificado ;)
es el mas recomendado :S

<?

include("includes/html.php");
include("includes/top.php");


switch ($_GET['id']) {

case 'legal':
include("includes/nota_legal.php");
break;

case 'probando':
include("includes/probando_1.php");
break;

default:
include("includes/home.php");
break;
}

include("includes/bottom.php");
include("includes/fhtml.php");

?>
  #9 (permalink)  
Antiguo 06/03/2005, 18:00
Avatar de FuLaNo_  
Fecha de Ingreso: mayo-2003
Ubicación: Don Torcuato, Buenos Aires, Argentina
Mensajes: 1.250
Antigüedad: 20 años, 11 meses
Puntos: 2
Pues no es lo mismo ya que al poner TODOS los includes en cada pagina podré hacer diferentes cabeceras o pie de pagina para cada una, entiendes? de la forma que tu dices tendría la cabecera y el pie de pagina igual en todos los casos, aunque, si voy a hacer el mismo diseño a todas las paginas, pues entonces obviamente pòndré los includes que van siempre fuera del swicht.
__________________
I Love Programming...
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 13:32.