Y varios conceptos más a la hora de programar nuestros scripts. Ahora, este sistema es muy básico, como simple. Así que de ahora en más, es campo fértil para que Uds. mismos puedan agregarle todas las características y funcionalidades que deseen, personalizando el foro a su gusto. Como ideas, puedo mencionarles algunas:
Agregar más tags para que sus usuarios puedan dar formato a sus mensajes.
Incorporarle un sistema de usuarios.
Contadores de visualizaciones de un tema, para hacer un Ranking de temas más vistos.
La posibilidad de que los usuarios puedan utilizar firmas.
Y seguro que a uds. mismos se les deben estar ocurriendo otras muchas buenas ideas para mejorar el Foro. Para aquellos usuarios que sean vagos y no quieran estar un rato con el Copy&Paste, les dejo el código completo del foro para que lo descarguen . Por lo pronto, espero que hayan disfrutado este tutorial, y sigan programando simple, seguro, pero ante todo, bonito :D.
//Hacemos algunas validaciones
if(empty( $autor )) $autor = "Anónimo" ;
if(empty( $titulo )) $titulo = "Sin título" ;
//Evitamos que el usuario ingrese HTML
$mensaje = htmlentities ( $mensaje );
// Grabamos el mensaje en la base.
$sql = "INSERT INTO foro (autor, titulo, mensaje, identificador, fecha, ult_respuesta) " ;
$sql .= "VALUES ('$autor','$titulo','$mensaje','$ident',NOW(),NOW())" ;
$rs = mysql_query ( $sql , $con ) or die( "Error al grabar un mensaje: " . mysql_error );
$ult_id = mysql_insert_id ( $con );
/* si es un mensaje en respuesta a otro
actualizamos los datos */
if(!empty( $ident ))
{
$sql = "UPDATE foro SET respuestas=respuestas+1, ult_respuesta=NOW()" ;
$sql .= " WHERE id = '$ident'" ;
$rs = mysql_query ( $sql , $con );
Header ( "Location: foro.php?id=$ident#$ult_id" );
exit();
}
Header ( "Location: index.php" );
?>
En este script, luego de tomar las variables desde el formulario (con el método POST), primero verificamos que exista un nombre de autor y el título del mensaje, caso contrario le asignamos un valor por defecto. También utilizamos la función de PHP htmlentities() para convertir todos los caracteres especiales ( >, <, ", &, etc ) en sus respectivas entidades HTML ( >, <, "e;, &). Con esto evitamos que un usuario ingrese código HTML en nuestro Foro (con la respectiva vulnerabilidad que este implica).