PDA

Ver la versión completa : Cómo funciona internamente un foro?



64BeeT
23/05/2008, 21:27
Hola a todos,

El motivo de este post es a causa de un trabajo que tengo que hacer para clase de informática. Resulta que tengo que explicar cómo funciona internamente un foro, a nivel de programación, bases de datos y servidores.
Antes de nada, no he abierto el post para que "me hagáis el trabajo" sino sencillamente, pongo esto aquí, porque tiempo atrás era bastante asiduo en el foro (aunque era más lector que escritor), y sé que hay mucha gente aquí relacionada con la informática (por no decir casi todos) y además muchos estudiantes de informática y, para colmo esto es un foro :D así que a lo mejor alguna información tenéis.

He estado buscando y no encuentro mucho del funcionamiento "interno", sólo encuentro la parte externa, lo de hilos, posts, usuarios, avatares, admins, mods... vamos, lo que todos más o menos sabemos al estar aquí, o sea que no he avanzado mucho. Por eso sería de gran ayuda cualquier información, web o recurso donde haya documentación acerca del tema.

Muchas gracias a todos y saludos!

chipan
23/05/2008, 21:29
De eso Anarchy sabe un rato; otra cosa es que tenga tiempo para explicarlo.

K-teto
23/05/2008, 21:45
Bueno, basicamente, cuando tu escribes algo en un foro, va a una base de datos, cuando lo lees, lo que haces es recibir lo que esta en esa base de datos.

De nada! XDDD
Es que no veas ponerme ahora a explicar como funciona mysql o cualquier otra base de datos...

64BeeT
24/05/2008, 19:16
Gracias por responder.

Ahora mismo mi información es la siguiente:

En un foro tenemos 3 partes. El servidor, donde se aloja la información; la parte de programación y estructuración de subforos y demás, ya sea con PHP o ASP y las bases de datos con tablas con los mensajes y hilos y sus relaciones. Supongo que hasta aquí voy bien.

Con esto tengo la estructura pero necesito aprofundizar más. Por ejemplo: la parte de programación con PHP (por ejemplo) qué controla exactamente? El diseño, los subforos... y seguramente más cosas que no sé. También si sabéis otros lenguajes usados en foros lo podéis decir.

Y el tema de base de datos es lo que decías tu K-teto de mySQL. Supongo que son tablas con toda esta información: usuarios, temas, mensajes... algo más? También aquí si sabéis algun otro tipo de base de datos usado lo podéis poner (es lo mismo SQL que mySQL? supongo que no...).

Bueno, lo dicho antes, que cualquier aportación será de gran ayuda. Incluso si sabéis acerca de foros "precocinados" :D lo podéis poner(lo siento, no se cual es el término para los foros estos que ya están hechos, como de un mismo molde y uno mismo puede hacerse uno muy facilmente ).

Gracias y saludos![wei2]

Ñuño Martínez
26/05/2008, 10:56
Pues mira, lo que hace la parte en PHP es, primero, obtener los parámetros de la petición. Por ejemplo, si miras la URI de este mismo foro verás que pone "?t=55396". PHP puede obtener ese valor "t" que identifica este hilo ("thread"). Luego busca en la base de datos la información (en este caso, las entradas del hilo número 55396), carga la plantilla de la página, que suele estar escrita en pseudo-HTML, y construye la página con toda la información recibida. En cuanto a cómo se publican nuevos mensajes te lo dejo como ejercicio. [wei]

Como nota importante, no toda la información está guardada en la misma tabla de la base de datos, normalmente está separada. Por ejemplo, una tabla contiene la estructura de foros y subforos, otra contiene los mensajes, otra la información de los usuarios, otra los mensajes privados, etc. Tal vez te convenga bajarte un foro gratuito, como PHPbb (http://www.phpbb.com). No es el que utiliza GP32Spain, este es VBulletin y es de pago.

AOJ
26/05/2008, 11:12
Como ha dicho Ñuño, lo primero es instalar un servidor web en local (si usas windows, te recomiendo WAMP para ir rápido), y luego meterle unos foros gratuitos como PHPbb (o algo más sencillo).

A partir de ahí puedes estudiar el código y mirar las tablas que te haya generado. En principio van a tener nombres entendibles, por lo que te va a ser relativamente fácil aprender su estructura.