Autor Tema: Sistema de modulacion con contenido en mysql  (Leído 1916 veces)

Desconectado kekoman

  • PHPero Master
  • ******
  • Mensajes: 1.180
  • Karma: 45
  • Sexo: Masculino
  • Mi nuevo usuario es marco811
    • Ver Perfil
Sistema de modulacion con contenido en mysql
« en: 06 de Noviembre de 2007, 18:25:06 pm »
Buenas, bienvenidos a este nuevo minitutorial!
He visto en muchos portales prefabricados (phpnuke, joomla, e107 etc...) que las paginas del sistema de modulacion se guardan en la base de datos mysql!
El codigo no es tan diferente al que publico naveda, aqui tienen el codigo mas la explicacion  ;)
Codigo sql:
Código: [Seleccionar]
CREATE TABLE `pages` (
  `id` int(11) NOT NULL,
  `contenido` text collate latin1_general_ci NOT NULL,
  PRIMARY KEY  (`id`)
)
Codigo php:
<?
if(isset($_GET[&#39;pag&#39;]) && !empty($_GET[&#39;pag&#39;])) { //comprobamos que $_GET este definido
	
$resp_pag = @mysql_query("SELECT * FROM `pages` WHERE id = &#39;".mysql_real_escape_string($_GET[&#39;pag&#39;])."&#39;");
	
$pagina = @mysql_fetch_array($resp_pag);
	
if (!empty(
$pagina[&#39;contain&#39;])) { //comprobamos que la pagina existe en la base de datos
	
	
echo 
$pagina[&#39;contain&#39;]; //si eso se cumple, procedemos a la extraccion de datos
	
} else echo 
"la pagina no existe"//si no se cumple, mostramos error en pantalla
} else { //si $_GET no esta definido mostramos la pagina principal
	
include (
"principal.php");
}
?>


Espero que hos haya sido de utilidad este tutorial  :)
Gracias y un saludo!
Espero vuestros comentarios...
« Última modificación: 07 de Noviembre de 2007, 21:10:08 pm por naveda »


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

Comunidad PHPeros

Sistema de modulacion con contenido en mysql
« en: 06 de Noviembre de 2007, 18:25:06 pm »

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re: Sistema de modulacion con contenido en mysql
« Respuesta #1 en: 06 de Noviembre de 2007, 19:04:42 pm »
Nada mal, no señor, no esta nada mal.
El unico problema que le veo es que es vulnerable a inyeccion SQL.
Para saber como evitarla puedes leer esto que publique ayer.

http://www.phperos.net/foro/index.php/topic,1280.msg12221.html#msg12221
Saludos!
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

Conectado naveda

  • Administrador General
  • PHPero Master
  • *****
  • Mensajes: 2.282
  • Karma: 165
  • Sexo: Masculino
    • Ver Perfil
    • naveda.me
Re: Sistema de modulacion con contenido en mysql
« Respuesta #2 en: 07 de Noviembre de 2007, 20:11:25 pm »
Aquí pongo mi modificacion del mismo con algunas mejoras...

<?
if(isset($_GET[&#39;pag&#39;]) && !empty($_GET[&#39;pag&#39;])) { //comprobamos que $_GET este definido
	
$resp_pag = @mysql_query("SELECT * FROM `pages` WHERE id = &#39;".mysql_real_escape_string($_GET[&#39;pag&#39;])."&#39;");
	
$pagina = @mysql_fetch_array($resp_pag);
	
if (!empty(
$pagina[&#39;contain&#39;])) { //comprobamos que la pagina existe en la base de datos
	
	
echo 
$pagina[&#39;contain&#39;]; //si eso se cumple, procedemos a la extraccion de datos
	
} else echo 
"la pagina no existe"//si no se cumple, mostramos error en pantalla
} else { //si $_GET no esta definido mostramos la pagina principal
	
include (
"principal.php");
}
?>


Ahora la logica es mejor ya que no intenta extraer información hasta que no se ha comprobado que $_GET['pag'] existe ya que sino extraer información sería vano e innecesario.

Las comprobaciones ahora creo que son mas correctas pero estoy abierto a sugerencias.

Kekoman Karma +
Por favor, leete las Normas


Desconectado kekoman

  • PHPero Master
  • ******
  • Mensajes: 1.180
  • Karma: 45
  • Sexo: Masculino
  • Mi nuevo usuario es marco811
    • Ver Perfil
Re: Sistema de modulacion con contenido en mysql
« Respuesta #3 en: 07 de Noviembre de 2007, 20:28:17 pm »
gracias, karma + para ti!
Ya modifique mi mensaje añadiendolo tu codigo  :P
Saludos!


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

Desconectado ZunSit

  • PHPerit@
  • *
  • Mensajes: 25
  • Karma: 0
    • Ver Perfil
Re: Sistema de modulacion con contenido en mysql
« Respuesta #4 en: 16 de Diciembre de 2007, 19:05:09 pm »
Una pregunta, como seria para poner los links, llevo media hora intentando ponerlos y no me sale...

Y otra, si quiero incluir codigos en PHP en la sección como haria para que salieran y se ejecutaran al entrar a esa sección?

Gracias :P

Desconectado kekoman

  • PHPero Master
  • ******
  • Mensajes: 1.180
  • Karma: 45
  • Sexo: Masculino
  • Mi nuevo usuario es marco811
    • Ver Perfil
Re: Sistema de modulacion con contenido en mysql
« Respuesta #5 en: 16 de Diciembre de 2007, 19:11:47 pm »
1. Que links?
2. con un iframe  ;)
« Última modificación: 16 de Diciembre de 2007, 19:39:22 pm por kekoman »


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

Desconectado ZunSit

  • PHPerit@
  • *
  • Mensajes: 25
  • Karma: 0
    • Ver Perfil
Re: Sistema de modulacion con contenido en mysql
« Respuesta #6 en: 16 de Diciembre de 2007, 21:45:39 pm »
osea para hacer un link hacia esa sección en el normal seria:
index.php?id=lolo

y respecto a lo de ejectuar PHP me referia a que al sacarlo de la DB no lo ejecuta sino que lo pone como si fuera escrito normal, ¿como hago para ejecutarlo?

Desconectado kekoman

  • PHPero Master
  • ******
  • Mensajes: 1.180
  • Karma: 45
  • Sexo: Masculino
  • Mi nuevo usuario es marco811
    • Ver Perfil
Re: Sistema de modulacion con contenido en mysql
« Respuesta #7 en: 16 de Diciembre de 2007, 22:02:48 pm »
1. En a lo de la ejecución del código php tengo la siguiente solucion, crear un archivo temporal al visitar la pagina  ;D
$temp tmpfile();
fwrite($temp"$pagina[&#39;contenido&#39;]");
include (
$temp);

pero es una solución mala xD, saturaría el servidor y gastaría transferencia, por eso pedimos ayuda a naveda para que nos ayude  :) :)
2. Sigo sin entender lo que dices sobre los links!  :) :)
« Última modificación: 17 de Diciembre de 2007, 17:35:28 pm por kekoman »


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

Desconectado Snead

  • PHPer@ Fijo
  • ***
  • Mensajes: 128
  • Karma: 2
  • Snead [Security;n'Design]
    • Ver Perfil
    • Diseño web
Re: Sistema de modulacion con contenido en mysql
« Respuesta #8 en: 17 de Diciembre de 2007, 00:10:21 am »
El error esta en que la columna se llama "contenido" y en la pag pones "$pagina[contain]"

<? Snead (Security;n'Design); ?>

Desconectado ZunSit

  • PHPerit@
  • *
  • Mensajes: 25
  • Karma: 0
    • Ver Perfil
Re: Sistema de modulacion con contenido en mysql
« Respuesta #9 en: 17 de Diciembre de 2007, 15:26:28 pm »
Gracias, ya funciona
Ahoar me gustaria saber como ejecutar el codigo PHP almacenado en la DB...

Gracias ;)

Desconectado revolucio

  • PHPerit@
  • *
  • Mensajes: 4
  • Karma: 0
  • Sexo: Masculino
    • Ver Perfil
Re: Sistema de modulacion con contenido en mysql
« Respuesta #10 en: 28 de Diciembre de 2007, 21:10:36 pm »
Buenas, tengo una duda.

¿Cómo podria hacer para modular las noticias de mi script? (Funciona con MySQL)

Por mucho que lo intento, se activa el error que se muestra cuando no existe en la DB la noticia.

lo estoy colocando en inc/actions y en noticias.php

y la url por la que accedo es; /principal.php?secc=noticias&id=10

PD: Para modular sin MySQL estoy usando otro script de esta web tmb.

Desconectado revolucio

  • PHPerit@
  • *
  • Mensajes: 4
  • Karma: 0
  • Sexo: Masculino
    • Ver Perfil
Re: Sistema de modulacion con contenido en mysql
« Respuesta #11 en: 29 de Diciembre de 2007, 18:07:30 pm »
Buenas, tengo una duda.

¿Cómo podria hacer para modular las noticias de mi script? (Funciona con MySQL)

Por mucho que lo intento, se activa el error que se muestra cuando no existe en la DB la noticia.

lo estoy colocando en inc/actions y en noticias.php

y la url por la que accedo es; /principal.php?secc=noticias&id=10

PD: Para modular sin MySQL estoy usando otro script de esta web tmb.

Solucionado, un error tonto en el archivo que conecta a la DB  :)