Creando un foro en PHP[Básico]

Unido
diciembre 28, 2007
Mensajes
1,097
Karma
610
Buenas a todos!
Pues hoy pensando y pensando se me ha ocurrido haceros un script de muestra de como crear un foro en PHP.
Comencemos!
Os voy a ir poniendo los codigos y los iré explicando.

Archivo SQL(Son las consultas que hay que hacer en el phpMyAdmin)
Código:
CREATE TABLE categorias (
id int(4) AUTO_INCREMENT NOT NULL,
nombre varchar(255) NOT NULL,
descripcion varchar(255) NOT NULL,
PRIMARY KEY(id)
);
CREATE TABLE temas (
id int(4) AUTO_INCREMENT NOT NULL,
id_foro varchar(100) NOT NULL,
nombre varchar(255) NOT NULL,
texto blob,
PRIMARY KEY(id)
);
CREATE TABLE comentarios (
id int(4) AUTO_INCREMENT NOT NULL,
id_tema bigint(7) default NULL,
comentario blob,
KEY(id)
);
Vamos con el PHP.

config.php(Es el archivo que contiene los datos y la conexión a la base de datos)
PHP:
<?php

$host = 'localhost'; // Ej: localhost, es el servidor de la base de datos
$user = 'usuario'; // Ej: root, es el usuario de la base de datos
$pass = 'pass'; // Ej: 4234254, es la contraseña de la base de datos
$db = 'db'; // ej: Foro, es el nombre de la base de datos

// Hacemos la conexion a la base de datos
$conectar = mysql_connect($host,$user,$pass) or die('Los datos no son correctos');
// Seleccionamos la BD
mysql_select_db($db,$conectar) or die('No se ha podido conectar a la base de datos');

?>
foro.php(Donde se muestran las categorias del foro)
PHP:
<title>Foro</title>
<?php
// Incluimos el archivo de la conexion y los datos de la base de datos para podernos conectar
include('config.php');
// Hacemos la consulta a la base de datos para poder mostrar las categorias
$result = mysql_query('SELECT * FROM categorias');
while($rows = mysql_fetch_array($result)){
// Mostramos el link y el nombre de la categoria junto con su descripcion
echo "<a href=\"verforo.php?id_foro=".$rows['id']."\">".$rows['nombre']."</a>";
echo "<br>";
echo $rows['descripcion']."<br>";
}

?>
<?php 
// Seccion en donde se crean los temas.
if($_GET['que'] == "crear"){
// Definimos el REQUEST del select de las categorias
$nombre = $_REQUEST['select'];
// Hacemos la consulta a la base de datos para sacar las categorias
$cat = mysql_query("SELECT * FROM categorias WHERE nombre='$nombre'");
$cat2 = mysql_fetch_array($cat);
// Hacemos la insercion de los datos en la base de datos
mysql_query("INSERT INTO temas (nombre,texto,id_foro) VALUES ('$_REQUEST[titulo]','$_REQUEST[texto]','".$cat2[id]."')");
echo 'El tema ha sido añadido';
}
?>
<table width="100%">
<tr>
<td><form method="POST" action="foro.php?que=crear">
Escribe el titulo del tema anda xD:<br>
<input type="text" size="20" name="titulo"><br>
Elige en que foro quieres meter el tema anda xD:<br>
<select name="select">
<?php 
// HAcemos la consulta para sacar las categorias
$select = mysql_query("SELECT * FROM categorias");
while($sel = mysql_fetch_array($select)){
// Mostramos las categorias en opciones para poder elegir donde ira nuestro tema
echo "<option value".$sel['nombre'].">".$sel['nombre']."</option>";
}
?>
</select> <br>
Escribe el tema anda xD:<br>
<textarea name="texto"></textarea>
<br><input type="submit" name="enviar">
</form></td>
</tr>
</table>
verforo.php(Donde se ven y se accede a los temas que hay en cada categoria)
PHP:
<?php
// Incluimos el archivo con los datos y la conexion de la base de datos para poder conectarnos
include('config.php');
// Extraemos el numero del foro
$id = $_GET['id_foro'];
// Hacemos la consulta para poder extraer el nombre del foro
$result = mysql_query("SELECT * FROM categorias WHERE id='$id'");
$rows = mysql_fetch_array($result);
?>
<title><?php echo $rows['nombre']; ?></title>

<?php
// Hacemos la consulta para poder extraer los temas que hay en este foro
$result2 = mysql_query("SELECT * FROM temas WHERE id_foro='$id'");
while($row = mysql_fetch_array($result2)){
// Mostramos el link al tema y su nombre
echo "<a href=\"vertema.php?id_foro=$id&id=".$row['id']."\">".$row['nombre']."</a><br>";
}
?>
vertema.php(Donde se mostraran los datos del tema)
PHP:
<?php
// Incluimos el archivo con los datos y la conexion de la base de datos para poder conectarnos
include('config.php');
// Extraemos el numero del tema
$id = $_GET['id'];
// Hacemos la consulta para extraer el nombre del tema
$result = mysql_query("SELECT * FROM temas WHERE id='$id'");
$rows = mysql_fetch_array($result);

?>
<title><?php echo $rows['nombre']; ?></title>

<?php
// Hacemos la consulta para mostrar el contenido del tema y en que foro esta
mysql_query("SELECT id_foro FROM temas WHERE id='$id'");
$result = mysql_query("SELECT * FROM temas WHERE id='$id'");
while($row = mysql_fetch_array($result)){
// Mostramos los datos
echo $row['nombre'];
echo "<br>";
echo $row['texto'];
}
// Seccion donde se procesa la respuesta
if($_GET['seccion'] == "reply"){
if($_POST['enviar']){
// DEfinimos el REQUEST del texto de la respuesta
$texto = $_REQUEST['texto'];
// Hacemos la insercion de los datos a la base de datos
mysql_query("INSERT INTO comentarios (comentario,id_tema) VALUES ('$texto','$id')");
echo "<br>El comentario se ha enviado correctamente, <a href=\"".$_SERVER['HTTP_REFERER']."\">volver al tema</a>";
}
}
?>
<br>_____________________________________________________<br>
<?php 
// Hacemos la consulta para mostrar las respuestas
$select2 = mysql_query("SELECT * FROM comentarios WHERE id_tema='$id'");
while($reg = mysql_fetch_array($select2)){
//Mostramos los datos
echo "<br>";
echo $reg['comentario'];
echo "<br>";
}
?>
<table width="100%">
<tr>
<td><form method="POST" action="<?php echo $_SERVER['REQUEST_URI']; ?>&seccion=reply">
Escribe el tema anda xD:<br>
<textarea name="texto"></textarea>
<br><input type="submit" name="enviar">
</form></td>
</tr>
</table>
creacat.php(Donde se crearan las categorias)

PHP:
<?php
// Incluimos el archivo con los datos y la conexion de la base de datos para poder conectarnos
include('config.php');
//Hacemos la insercion de los datos en la base de datos
if($_POST['enviar']){
mysql_query("INSERT INTO categorias (nombre,descripcion) VALUES ('$_REQUEST[nombre]','$_REQUEST[desc]')");
echo 'La categoria se ha creado correctamente';
}
?>

<form method="POST" action="creacat.php">
Escribe el nombre de la categoria:
<br>
<input type="text" name="nombre">
<br>
Escribe la descripcion de la categoria:
<br>
<input type="text" name="desc">
<br><br>
<input type="submit" name="enviar">
</form>
Y esto es todo, os dejo los archivos ya creados por si sois vagos, pero es mejor que lo hagáis vosotros mismos, ganaréis mas experiencia y mas seguridad en vosotros, yo he hecho esto para daros una idea de la estructura, ahora vosotros cread el vuestro!
 

Archivos adjuntos

Unido
diciembre 28, 2007
Mensajes
1,097
Karma
610
Nadie mas quiere ver mi excelente tutorial? xD
Va, animaos que esto del PHP es muy facil!

P.D.: Gracias por los coments compis xD
Has pillado perfectamente la trama del cuento tio xD
 
Unido
enero 1, 2008
Mensajes
4,100
Karma
3,972
Te doy las gracias porque se nota que te aburrias me_abuerro, quiero decir que te aburrias tu, no yo, me_abuerro es "me" de tu nick no de "mi", ok?


Pos eso.

Buen aporte, intentaré memorizarlo ;d
 

CharlyXero

Keys To The Kingdom
Colaborador
CharlyXero
Unido
febrero 3, 2008
Mensajes
17,568
Karma
9,289
Ubicación
España
No sabia que el foro perimitia escribir en chino XDD.
No entiendo nada xD
 
Unido
julio 6, 2008
Mensajes
698
Karma
135
Ubicación
Barcelona
gracias por el post xDD yo si que entiendo algo de lo que sale por ahi xDD
me encanta el cuento del lobo y los cerditos que has escrito :p
 
Unido
marzo 1, 2008
Mensajes
7,767
Karma
3,045
Ubicación
Madrid
no he entendido nada XD pero a ver como empiezas a crearlo?? donde entras para hacer uno y meter los codigos y todo eso?? no entiendo nada jajajaj
 

The Viper

El-yer
Unido
septiembre 26, 2007
Mensajes
9,880
Karma
6,025
pero al final la forma del foro como quedaria?? puedes poner una foto??
 
Unido
diciembre 28, 2007
Mensajes
1,097
Karma
610
Haber, la forma quedaria todo blanco con texto, eso no tiene ni usuarios ni nada, es solo un foro muy basico de ejemplo, para que sepais desde donde se parte para crear un foro.
 

The Viper

El-yer
Unido
septiembre 26, 2007
Mensajes
9,880
Karma
6,025
Haber, la forma quedaria todo blanco con texto, eso no tiene ni usuarios ni nada, es solo un foro muy basico de ejemplo, para que sepais desde donde se parte para crear un foro.
Pues pa eso me creo un foro en creatuforo.com y ademas mas facil
 

Kevin

KevinDRM
Unido
junio 14, 2007
Mensajes
1,252
Karma
422
Ubicación
Granada
Pues pa eso me creo un foro en creatuforo.com y ademas mas facil
LOL lo que ha hecho es un tutorial de como hacer tu propio foro en un host privado no es foroactivo, creatuforo ni cosas de esas, es muy diferente.

Gracias Salce aunque entiendo poco algun dia espero hacer algo como eso xD.
 
Superior