Crear un foro en PHP y Mysql [revisado]

Publicado en Principiantes por Webstudio el June 15th, 2003

Miles de posibilidades

Ya solo nos queda un último paso, y es el de crear la página que mostrara un tema y todas las respuestas que haya en él. Para ello, vemos como en el home del foro, llamamos a un script foro.php y le pasamos el id del tema que queremos ver. Luego, solo tenemos que obtener de la base el o los temas, en los que el id sea igual al que pasamos, o que el identificador (el campo que indica que ese mensaje es en respuesta a cierto tema) sea igual al identificador, los ordenamos por fecha y listo, foro al dente.

En este caso, el template que utilizaremos para mostrar cada uno de los mensajes, será una tabla con todos los datos necesarios: el autor del mensaje, el título, la fecha del mensaje, el mensaje en si mismo. Pero también agregaremos dos detalles. Primero, un link hacia el formulario que creamos antes, de modo que un usuario pueda citar un mensaje en particular, y segundo, un Anchor (o Ancla) para que al responder a un mensaje, se pueda acceder directamente al mismo por su id en la base de datos.

post.html

PHP:
  1. <table width="90%" border="0" align="center" cellpadding="2" cellspacing="2">
  2.  <tr bgcolor="<?=$color?>">
  3.    <td width="25%" valign="top"> <b><a name="<?=$id?>">
  4.      <?=$autor?></a>
  5.      </b><br />
  6.      <font size="-2">Enviado el : <?=$enviado?></font>
  7.    </td>
  8.    <td> <table width="100%" border="0" cellspacing="0" cellpadding="0">
  9.        <tr>
  10.          <td><strong><font size="-1">
  11.            <?=$titulo?>
  12.            </font></strong> </td>
  13.          <td width="10%" align="right"> [ <a href="respuesta.php?id=<?=$id?>&citar=1">CITAR</a>
  14.            ]</td>
  15.        </tr>
  16.      </table>
  17.      <hr align="center" width="100%" size="2" noshade/>
  18.      <?=$mensaje?></td>
  19.  </tr>
  20.  <tr>
  21.    <td colspan="2" height="5"></td>
  22.  </tr>
  23. </table>

Ahora, veamos el código PHP que utilizaremos para "parsear" este template :

foro.php

PHP:
  1. <?php
  2. require('configuracion.php');
  3. require('funciones.php');
  4. $id = $_GET["id"];
  5. if(empty($id)) Header("Location: index.php");
  6.  
  7. $sql = "SELECT id, autor, titulo, mensaje, ";
  8. $sql.= "DATE_FORMAT(fecha, '%d/%m/%Y %H:%i:%s') as enviado FROM foro ";
  9. $sql.= "WHERE id='$id' OR identificador='$id' ORDER BY fecha ASC";
  10. $rs = mysql_query($sql, $con);
  11. include('header.html');
  12. if(mysql_num_rows($rs)>0)
  13. {
  14.    include('titulos_post.html');
  15.    $template = implode("", file('post.html'));
  16.    while($row = mysql_fetch_assoc($rs))
  17.    {
  18.        $color=($color==""?"#5b69a6":"");
  19.        $row["color"] = $color;
  20.        //manipulamos el mensaje
  21.        $row["mensaje"] = nl2br($row["mensaje"]);
  22.        $row["mensaje"] = parsearTags($row["mensaje"]);
  23.        mostrarTemplate($template, $row);
  24.    }
  25. }
  26. include('footer.html');
  27. ?>

Como siempre, incluimos la conexion a la base de datos, el archivo de funciones y validamos de que exista la variable $id, ya que de lo contrario, nada podríamos hacer y nuestro foro fallaría en el Query. Hablando del Query, podemos ver como utilizamos la función de MySql DATE_FORMAT() para convertir el formato por defecto del tipo datetime ('AAAA-MM-DD hh:mm:ss') en algo que sea más común para nuestro idioma ('DD/MM/AAAA hh:mm:ss'). Si quieren más información sobre esta función, pueden visitar y consultar el manual de mySQL.

Lo más destacado en este script que podemos ver, son dos transformaciones que le hacemos al mensaje, antes de enviarlo al template. Como vemos, primero utilizamos la función de PHP nl2br(), que convierte todos los saltos de linea, en tags <br />, de esa manera, los saltos que un usuario ingrese en el textarea, serán agregados correctamente al mostrar el mensaje. Luego, vemos como llamamos a la función parsearTags(). ¿Qué hace esta función? Veamos:

funciones.php

PHP:
  1. <?php
  2. function parsearTags($mensaje)
  3. {
  4.    $mensaje = str_replace("[citar]", "<blockquote><hr width='100%' size='2'/>", $mensaje);
  5.    $mensaje = str_replace("[/citar]", "<hr width='100%' size='2'/>", $mensaje);
  6.    return $mensaje;
  7. }
  8. ?>

Dentro de esta función, podemos agregar todas las modificaciones que queremos realizarle al mensaje, antes de mostrarlo en el Foro. En el ejemplo, vemos como hemos implementado el uso de un tag propio, [citar]. El mismo, dentro de la función, será reemplazado por el código HTML necesario para destacar el citado de un mensaje, todo esto gracias a la función str_replace() de PHP (más info en el manual). Este es el tag [citar] que se agrega automáticamente, y que notamos cuando respondíamos un mensaje.

Esta función, pueden personalizarla de la manera que deseen, agregando todos los tags que quieran, para ofrecerles a sus usuarios la libertad de darle formato a sus mensajes. Podrían, por ejemplo, agregar un nuevo tag, para poner palabras en negritas, o quizás alguna expresión regular que convierta automáticamente cualquier URL presente en el mensaje, en un link. Los límites son los de su imaginación.

Pages: 1 2 3 4 5 6

119 respuestas a 'Crear un foro en PHP y Mysql [revisado]'

Suscríbete a los comentarios con RSS o realiza un TrackBack a 'Crear un foro en PHP y Mysql [revisado]'.

  1. kamila dijo,

    el February 7th, 2006 a las 3:36 pm

    hola!!!!!!!!!!!!!!!!
    necesito crear un foro gratis!!!!!!!!!!!!!!!!
    xauxau….

  2. tetraktis dijo,

    el February 16th, 2006 a las 5:51 am

    hola que tal pobre el codigo que esta en el articulo , hice mis proioas archivos y no corrio, baje el que tienen para descarga y tampoco sirvio no tengo idea que pueda tener, creo que el while sirve pero no muerta los datos alojados en la baje de datos
    y en el formulario para agregar aparece en titulo y en mensaje ke son las variables no?? podrian ayudarme ??

  3. Matías dijo,

    el February 26th, 2006 a las 7:17 pm

    ¿Hay alguna forma de que este codigo de foro PHP pueda arrastrar variables de usuario? me gustaría que propongan una solución con una segunda tabla añadida: la de usuarios.

  4. se dijo,

    el April 3rd, 2006 a las 5:53 am

    muy bueno

  5. Christhian dijo,

    el April 5th, 2006 a las 12:01 pm

    Acabo de bajar el codigo y el foro Funciona de maravilla, pero eso si queda igual el problema de crear usuarion en ve de dejar que cualquiera entre al foro… lo ideal que es la gente se pueda logear antes de entrar, ahora estoy haciendo unas modificacion a este codigo y cualquier cosa se los comunico para subirlo

  6. Alfonso dijo,

    el April 9th, 2006 a las 12:19 am

    Seria bueno que pongan el código bien revisado, algunas partes no corren.
    gracias

  7. Jon dijo,

    el April 12th, 2006 a las 8:36 am

    Hola buenas!!
    Ante todo, agredeceros la ayuda prestada, ya que mi idea de programar con PHP era nula y este artículo me ha sido de gran ayuda.
    Como sé que mucha gente se encuentra en mi situación, y yo he tenido algún problema para darme cuenta de lo que no funcionaba,
    pongo aquí la corrección de un pequeño fallo que se encuentra en el archivo formulario.html, donde las variables están mal declaradas:

    Donde pone: value=”">, hay que quitar la segunda ?, quedando así value=”">, lo mismo ocurre con otras dos variables, que son titulo y mensaje.

    Bueno, el resto creo que funciona correctamente.

    Un saludo.

  8. oscar dijo,

    el April 16th, 2006 a las 7:26 pm

    nada mas abrir la pagina me da este mensaje……….

    Notice: Undefined variable: color in c:\archivos de programa\easyphp1-8\www\index.php on line 17

    al inentar meter un nuevo mensaje sale esto:

    Notice: Undefined index: id in c:\archivos de programa\easyphp1-8\www\respuesta.php on line 3

    Notice: Undefined index: citar in c:\archivos de programa\easyphp1-8\www\respuesta.php on line 4

    en el campo para introducir el titulo sale esto:

    Notice: Undefined variable: titulo in c:\archivos de programa\easyphp1-8\www\funciones.php(6) : eval()’d code on line 10

    y en el campo del mensaje sale esto:

    Notice: Undefined variable: mensaje in c:\archivos de programa\easyphp1-8\www\funciones.php(6) : eval()’d code on line 14

    y al pinchar en un mensaje esto:

    Notice: Undefined variable: color in c:\archivos de programa\easyphp1-8\www\foro.php on line 18

    por lo demas todo va correcto,tanto la base de datos como el foro en si,pero estos mensajes cortan mucho la estetica,je,je

    alguna solucion ,plis

  9. nedo dijo,

    el May 10th, 2006 a las 7:25 pm

    joer, ya podíais haber puesto desde el principio que se podía descargar q me he vuelto loco con el ctr+c y el +v…

    ya contaré c´mo va esto

  10. Julio Sanchez dijo,

    el May 14th, 2006 a las 9:12 pm

    al momento de agregar un nuevo tema, cuando le doy al boton enviar mensaje de dice Error al grabar un mensaje: mysql_error
    alguna solucion ,plis

  11. Roberto dijo,

    el May 15th, 2006 a las 11:33 am

    Hola, mi direccion es robertoapk@gmail.com si hay alguien al que le ha funcionado el foro, porfavor que me lo comenten. Muchas gracias

    (porfavor respondanme al mail, ya que lo mirare mas frecuentemente)

  12. Henry dijo,

    el May 17th, 2006 a las 4:44 am

    bueno mi problema es
    Notice: Undefined variable: pg in c:\appserv\apache\htdocs\x\pg.php on line 3
    1 2 3 4 Continuar >

    codigo:
    $rgs = 3; $tpg=4;
    if (!$pg)

  13. Degmaster dijo,

    el May 17th, 2006 a las 2:48 pm

    Bueno, con los templates tengo un problemilla. No me aparece nada en el foro, me sale todo en blanco, no se como tengo que hacer el temas.htm ni el titulos.htm… el header y el footer.htm no me aparecen tampoco alguien me ayuda???

    Email: zakalakas@gmail.com

  14. Angel dijo,

    el May 17th, 2006 a las 9:52 pm

    hola quiero saber como se hace un formulario utilizando mysql porque mi servidor maneja esa base de datos en ves de cgi yo quiero diseñar formulario para que mis usuarios me envien sus consultas

  15. Sesperanto dijo,

    el June 1st, 2006 a las 11:24 am

    Notice: Undefined variable: mensaje in c:\archivos de programa\easyphp1-8\www\funciones.php(6) : eval()?d code on line 14

    ———————————————————————————————–

    Este error es por una mala configuración del PHP. Tienes que poner en ON la opción de “register_globals” (desde la versión 4, por defecto está OFF, y no te deja tener variables globales).

    E-Mail: sesperanto@yahoo.es

    Deuuuuuu

  16. Osman Borjas dijo,

    el June 7th, 2006 a las 8:33 pm

    Gracias por el codigo y distribuirlo GNU corre a la perfeccion solo es de seguir las instrucciones o modificar las contraseñas por el que tenemos en nuetra base de datos

  17. sadot dijo,

    el June 11th, 2006 a las 8:58 pm

    #
    Sesperanto dijo,

    el June 1st, 2006 a las 11:24 am

    Notice: Undefined variable: mensaje in c:\archivos de programa\easyphp1-8\www\funciones.php(6) : eval()?d code on line 14

    ????????????????????????????????

    Este error es por una mala configuración del PHP. Tienes que poner en ON la opción de ?register_globals? (desde la versión 4, por defecto está OFF, y no te deja tener variables globales).

    E-Mail: sesperanto@yahoo.es

    Deuuuuuu
    ????????????????????????????????

    pues lo he intentado yo tambien y no he resuelto nada..
    sigue el mismo error
    Undefined variable:

    alguna idea??

  18. Pablo dijo,

    el June 11th, 2006 a las 11:51 pm

    Hola, estoy empezando a programar en PHP, y tu foro me esta sirviendo de mucho, solo que en el archivo index.php tengo problemas no me corre me marca este error Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\ProyectoForo\index.php on line 10
    Me podrias ayudar o explicarme que pasa en esta parte ya lei toda la explicacion y no le encuentro nada para poder corregir ese error. Gracias esperop tu ayuda

  19. Jdizio dijo,

    el June 15th, 2006 a las 11:17 am

    Hola excelente tutorial pero me da algunas fallas… apenas entro me dice:
    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/xtrategi/public_html/foro/index.php on line 10

    Quisiera que alguien me ayudara, lo necesito con urgencia.
    Ademas que cuando agrego un tema me dice
    Error al grabar un mensaje: mysql_error

    Mi email es jdizio@gmail.com … gracias por adelantado a quien me quiera ayudar

  20. rafa dijo,

    el July 1st, 2006 a las 11:21 pm

    no me funciona, quizas algo hice mal, ayuda!!!

  21. Carlos dijo,

    el July 3rd, 2006 a las 4:25 am

    Trabajamos con fedora 4, apache corriendo, mysql corriendo, la base y la tabla creadas.
    Al momento de enviar los datos desde la pagina respuesta.php nos arroja el siguiente error

    Error al grabar un mensaje: mysql_error

    El usuario utilizado esta con todos los permisos en la base

  22. nacho dijo,

    el July 28th, 2006 a las 12:11 pm

    muy curioso

  23. Yaco dijo,

    el July 30th, 2006 a las 10:08 am

    Para el fallo (Notice: Undefined variable: xxx) se debe corregir modificando dos varibles en php.ini

    error_reporting = E_ALL & ~E_NOTICE

    register_globals = On

    A mi me fincionó, espero que le valga de ayuda a otros.
    Saludos

  24. Williams dijo,

    el August 10th, 2006 a las 11:33 am

    Funka !!
    Gracias

  25. ]Noche[ dijo,

    el August 15th, 2006 a las 10:55 am

    estos codigos se ponen en el bloc de notas? yo es que e intentado hacer un foro con HTMl pero veo que no se puede :( y no se donde tengo que poner los codigos de PHP no se si es igual que con HTML.

    Salu2.

  26. Designer dijo,

    el September 6th, 2006 a las 11:06 am

    Creo que seria muy bueno que al dejar sus mensajes dejen su direccion de email para que exista contacto via msn messenger para tener una conexion mas directa con las preguntas. Gracias de ante mano.


  27. el September 9th, 2006 a las 2:12 pm

    necesito como hago para que me salga la palabra Re en el foro la instruccion que ustedes me dan no me funciona… que de bo hacer .. otra cosa que hace el punto antes del row… ej: .$row….

  28. Rafa dijo,

    el September 18th, 2006 a las 9:00 am

    Lo he intentado 1000 veces y nada, alguien podria pasarme todo en un archivo rar??? mi msn es mikeoldfield03[arroba]hotmail[punto]com

  29. sapinto dijo,

    el September 21st, 2006 a las 3:33 pm

    es un buen codigo para COMENZAR a entender y programar en php.

    a quienes quieren una solucion rapida a todos los problemas y no meterse en el codigo: BAJEN PHPBB.

  30. farid dijo,

    el October 14th, 2006 a las 3:40 pm

    Hola está muy bueno el tutorial pero quisiera que me pasen una actualización de como hacer para quu me aparezca (si son muchos los temas) > que me separa en distintas páginas la cantidad de temas del foro… bueno esto es todo design agregame!!! fda223@hotmail.com

  31. Juan dijo,

    el October 28th, 2006 a las 5:25 pm

    Hola, muy bueno el tutorial, aunque tengo un problema!
    Cuando cargo la pagina no me aparece ninguno de los post del foro, ni tampoco si agrego uno nuevo, aunque lo graba bien en la base de datos!. Al crear un nuevo post en titulo me muestra y en mensaje envio el mensaje y no muestra nada pero si consulto la base de datos aparece la info!
    Desde ya muchas gracias!

  32. Didierhm dijo,

    el November 9th, 2006 a las 12:47 am

    Que bueno era la base que estaba buscando.
    Me pregunto si se pueden agregar imagenes…o sea adjuntar un archivo por ejemplo….
    Si alguien lo ha hecho…me pasa el tip por favor.

  33. kano dijo,

    el November 9th, 2006 a las 9:29 pm

    Pues sólo me basta felicitarlos, ahora con esta base podré hacer un foro más completo, por cierto corre a la perfección sólo deben seguir los pasos como se indican, de nuevo felicidades por este gran aporte.

    Hasta Pronto.

  34. yo dijo,

    el November 12th, 2006 a las 4:01 pm

    oscar … Muchacho modifica el php.ini, estás agoviado con las noticias, ufffffffff.

  35. Isa dijo,

    el November 15th, 2006 a las 11:35 am

    Hola…
    Sabes como puedo convertir una archivo (cualquiera .dco.xls..etc) a pdf usando php?

  36. Danilo dijo,

    el November 15th, 2006 a las 11:36 pm

    Quisiera saver como envez que los Post fueran del primero arriba fuera alrrevez que el primero siempre abajo y los recientes arriba, Esque quiero hacer una pagina donde poder ir integrando scrip ya sea de PHP, VB.NET y todo eso pero que solo yo pueda insertarlos

    LES AGRADECERIA MUCHO SU AYUDA

    MIL GRACIAS

  37. Christian dijo,

    el November 27th, 2006 a las 7:17 pm

    Muy bueno el manual se agradece…

  38. Christian dijo,

    el November 27th, 2006 a las 7:23 pm

    Estimados, no puedo descargar el archivo :( , pueden revisar el link, me sale como que no existe el archivo

    Se agradece…

  39. Julián Osorio dijo,

    el November 28th, 2006 a las 6:11 pm

    Saludos a todos

    He intentado bajar todos los archivos comprimidos pero parece que el link está roto. ¿Alguien puede enviarme todos los archivos?

    changuaconhuevo69@hotmail.com

    Muchas gracias

  40. Julián Osorio dijo,

    el November 28th, 2006 a las 9:05 pm

    No me funcionó

    alguien me puede colaborar???

    Muchas gracias

    changuaconhuevo69@hotmail.com
    julian.osorio@gmail.com

  41. Webstudio dijo,

    el November 28th, 2006 a las 9:40 pm

    Mil disculpas a todos. Debido a un cambio de servidor que llevamos a cabo hace un par de semanas, olvidé mudar el directorio con las descargas. Por suerte la tenía en un backup, y ya volví a subirla para que todos puedan descargar los archivos.
    Sepan disculpar el olvido.

    Saludos.


  42. el December 7th, 2006 a las 10:38 pm

    gracias es lo que estaba buscando gracias

  43. sharon dijo,

    el December 9th, 2006 a las 3:17 pm

    hola me llamo sharon latorre soi d lima tengo 16 años
    y quisiera saber si alguien me puede ayudar a crear un foro mi correo es hermosa2_bebita@hotmail.com graxias d antemano besos


  44. el January 11th, 2007 a las 12:26 pm

    Como crear un foro con PHP y MySQL…

    En esta segunda versión del tutorial original, crearemos un foro desde cero aprendiendo a separar la programación del diseño, y modularizando nuestra aplicación para que sea simple de configurar y de adaptar….

  45. Mary dijo,

    el January 13th, 2007 a las 4:00 am

    Holitas..
    mi codigo es el siguiente, quiero que se muestre el texto[1] que esta dentro de la funcion display pero no me funciona que estoy haciendo mal ?..

    “texto 1″,2=>”texto 2″);

    function display()
    {
    echo “Dentro de la funcion tenemos: “.$texto[1].” “;
    }

    display();

    echo “Fuera de la funcion tenemos: “.$texto[2].” “;

    ?>

    gracias..

  46. Agata dijo,

    el January 14th, 2007 a las 2:29 pm

    oigan.. no dice cmo crear el header.html

  47. jmm dijo,

    el January 16th, 2007 a las 11:19 pm

    Gracias por este magnífico tutorial

  48. Fido dijo,

    el January 22nd, 2007 a las 7:05 pm

    Hola me Llamo Fido y mi problema es: Al ingresar registros en mi pagina creada en php los mando a guardar a mi base de datos (mysql), pero luego cierro la pagina, la vuelvo a cargar, ingreso otros registros y por automatico me ingresan uno o dos registros en blanco.
    ¿Que Serà?
    Me podria alguien decir o ayudar please?
    Fido177@yahoo.com

  49. Liuba dijo,

    el January 23rd, 2007 a las 12:37 pm

    Hola me llamo Liuba y quisiera saber como podria guardar datos en un txt desde una pagina php.
    ¿Podria alguien ayudarme en eso, por favor?

  50. Wifi dijo,

    el January 31st, 2007 a las 9:19 am

    Hola,

    Haber funcionar funciona… que es lo que no funciona? es que no muestra las respuestas de la gente, solo muestra el comentario principal de un tema… que puede pasar? lei en otras webs que a la gente le pasa lo mismo, no muestra las respuestas. Alguien sabe porque?

    Gracias!

  51. vero dijo,

    el February 9th, 2007 a las 4:29 pm

    Hola baje el foro siguiendo las instrucciones, y me marca error en la funcion de mostrarTemplate en el archivo index.php y en foro.php y en todo los que lleman esa función. como le puedo hacer…les agradeceria su ayuda. lorve1@yahoo.com

  52. vero dijo,

    el February 9th, 2007 a las 5:58 pm

    hola de nuevo, agregue el codigo de la funcion de los template en los archivos que se mandaba llamar…y ya quedo…muchas gracias
    pero ahora me marca otro errror bueno ya me lo marcaba pero pense que era por lo mismo de los templates…el error marcado es en donde esta escrito Header(”Location: index.php”); me marca error en el archivo de foro.php y el de agregar.php alguien me puedo decir que puedo hacer…cuando doy enviar que es cuando llama el de agregar.php…noto que se se agrega el comentario pero me marca ese error…en la pagina….mil gracias lorve1@yahoo.com

  53. katty dijo,

    el February 11th, 2007 a las 9:39 pm

    Hola, soy principiante en POO, y necesito hacer una aplicacion,
    la pregunta es si el formulario de entrada de datos debe manejar objetos(clases), para mostrar en pantalla datos contenidos en una B:D o simplemente utilizo los objetos cuando requiera hacer la programacion propiamente dicha.
    Si tienes un ejemplo te agradeceria muchhisimo.

  54. Analia dijo,

    el February 25th, 2007 a las 9:48 pm

    HOLA, soy nueva en esto cree mi web de poesía, pero me gustaria crearle el importal, o sea, tengo el portal y que de alli se acceda al importal y de alli al indez solo que no se com,o configurar este ultimo, me gustaria que tenga al margen un indice por ej,
    somos
    paginas amigas
    sitios recomendados
    poemas del dia
    eso al margen, y centrado
    pondria lo destacadod e la semana
    seria muy bueno que me ayuden y se los agradeceria mucho, desde ya mil gracias,
    espero su respuesta, Ana

  55. Webstudio dijo,

    el February 26th, 2007 a las 11:08 am

    Analía, te invito a que publiques tu misma consulta pero en nuestro Foro de Aplicaciones Prefabricadas. Allí seguramente encontrarás más facilmente quién te ayude.

  56. pablo dijo,

    el March 20th, 2007 a las 12:19 am

    Tuve un problema, el foro funciona de maravilla, pero no me crea temas nuevos, cuando le doy crear tema nuevo me asoma la impresion del error al grabar, no se a q se deba, en cuanto al citar me funciona de maravilla.

  57. jack dijo,

    el March 20th, 2007 a las 1:45 am

    cambie algunas cosas del codigo, hace todo , pero al momento de redireccionar con el header marca un error
    Warning: Cannot modify header information - headers already sent by (output started at ….etc

    //Hacemos algunas validaciones
    if(empty($autor)) $autor = “Anónimo”;
    if(empty($titulo)) $titulo = “Sin título”;
    if(empty ($ident)) $ident=”0″; // cambie esto, porque al ser vacio cuando se asigne un nuevo tema, ahi me tronaba, asi q le puse si estavacio el valor 0

    //Evitamos que el usuario ingrese HTML
    $mensaje = htmlentities($mensaje);
    echo $ident;

    // Grabamos el mensaje en la base.

    //hago un select max, para ver si esta vacio la tabla, y si tiene un registro, tomo su id y lo incremento a 1 para poder insertar un nuevo tema
    $conn=mysql_query(”select max(id) as id from foro”);
    $a=mysql_fetch_array($conn);
    $i=$a['id'];
    $i=$i+1;
    echo $i;
    $sql = “INSERT INTO foro (id, autor, titulo, mensaje, identificador, fecha, ult_respuesta) “;
    $sql.= “VALUES (’$i’,'$autor’,'$titulo’,'$mensaje’,'$ident’,NOW(),NOW())”;
    $rs = mysql_query($sql);
    //$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);
    header(”Location: foro.php?id=$ident#$ult_id”);
    include “untitled.php”;
    // exit();
    }

    header(”Location: index.php”);

    en cualquier header, me marca error, si lo quito, hace lo que necesito, el nuevo tema y el citar. y me marca el error q puse arriba, espero y me puedan ayudar….

  58. Enrique dijo,

    el March 27th, 2007 a las 5:41 pm

    Baje TODO el foro, funciona mu bien, pero cuando le doy en enviar mensaje no graba en la base de datos por lo tanto no muestra nada cuando consulto.
    Quisiera ver si alguien puede ayudar.
    De antemano gracias

  59. Jesús dijo,

    el March 28th, 2007 a las 2:03 pm

    Me ha gustado el foro, que habeis hecho,aunque tengo un problema a la hora de conectarme al mysql, según se puede observar. La web que estoy intentando hacer en PHP esta contenida en el Serve Ifastnet, pero tengo problemas a la hora de realizar el archivo configuracion.php ya que no cual es el host de la pagina y el usuario, si alguien me puede ayudar que me escriba al correo jesus_karamelo@hotmail.com y sobretodo saber como se localizan esos datos.

  60. anonimo dijo,

    el March 29th, 2007 a las 1:52 pm

    Yo he creado u foro basado en este con logueo de usuarios :-).

    Saludos.

  61. Carlos dijo,

    el April 3rd, 2007 a las 1:41 pm

    Hola, desearia saber si alguien podria ayudarme con esta consulta:

    En el proyecto que estoy llevando acabo, debo permitir incorporar un empleado a un trabajo X siempre y cuando no haya sido asignado a otro trabajo. la dificultad se me presenta pues cada empleado tiene una hora de entrada y de salida, y antes de ingresar el empleado a un trabajo debo ver que ya no este en otro trabajo. La estructura de la DB es:

    idJob (bigint) - idEmployee (bigint) - fecha (date) timeIn (time) - timeOut (date)

    Por ejemplo: Juan Perez esta trabajando para la Fecha: 04/04/2007 en el idJob=1 con timeIn = 07:00:00 y timeOut 13:00:00

    Debo permitir a Juan Perez ingresarlo en otro Job (trabajo) siempre y cuando no se superponga con el horario del trabajo 1. Necesitaria una funcion que me devuelva si esta trabajando, pasandole como parametro fecha, timeIn y timeOut .

    De querer ingresarlo a Juan Perez en el Job 2 con horario timeIn 11:00:00 y timeOut 14:00:00 deveria darme error. Si deberia dejarme por ejemplo timeIn 13:30:00 y timeOut 18:00:00

    Desde ya muchas gracias y escucho sugerencias.

    Carlos.

  62. gil dijo,

    el April 6th, 2007 a las 8:14 pm

    Bueno a mi me va de maravilla y todo incluso al escribir entradas nuevas pero tengo un problema k no han publicado, al escribir una respuesta se traba, solo si escribes un autor que ya esta,por ejemplo si el usuario juan escribio algo y despues vuelve a escribir da error, pero si escribe como juan2 o algo asi lo deja pasar ¿pork es esto?

  63. Miguel dijo,

    el April 8th, 2007 a las 4:52 pm

    Saludos a todos… estoy indagando un poco mas en php y me encantaria realizar el FORO de este tutorial.. POR FAVOR QUIEN LO ALLA TERMINADO LE AGRADEZCO SI ME PUEDE AYUDAR… ya que segui todas las pautas y tiene muchos errores y lo realice varias veces…Gracias

    Venezuela

  64. neyber dijo,

    el April 16th, 2007 a las 3:09 pm

    Bueno yo me descarge el foro y em va de maravillas todo esta ok bueno cualkier consulta escribamne a mi correo okis bey suerte

  65. AndrewP dijo,

    el April 27th, 2007 a las 12:44 pm

    Saludos…
    Estoy intentando seguir las variables de un foro de este tipo. Creo que el hecho de haber gastado tiempo en postear esta Web ya es mérito suficiente para los que casi no sabemos PHP.
    Dónde podría ver un ejemplo o un tutorial de foro que cargue las variables del usuario desde el principio de la página y no necesariamente al ingresar al foro?

    Creéis que es bueno usar un subdominio para autentificar los usuarios que ingresan al foro?

    Saludfos y Gracias por vuestra ayuda.

  66. Jaime dijo,

    el May 6th, 2007 a las 1:27 am

    Soy de Perú y en verdad veo que me falta bastante por aprender gracias por estas lecciones tan importantes en lo que trato de hacer, soy nuevo en php y mysql

    Jaime Mongrut Farro
    http://www.lareddorada.com

  67. Ian182 dijo,

    el May 12th, 2007 a las 1:22 am

    hola1 tengo los siguientes errores.. alguien podria porfavor ayudarme, grax

    Warning: mysql_connect() [function.mysql-connect]: Access denied for user ‘usuario’@'localhost’ (using password: YES) in C:\AppServ\www\appserv\forox\foro\configuracion.php on line 7

    Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in C:\AppServ\www\appserv\forox\foro\configuracion.php on line 8

    Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in C:\AppServ\www\appserv\forox\foro\agregar.php on line 19
    Error al grabar un mensaje: mysql_error

  68. MaryFranzy dijo,

    el May 13th, 2007 a las 6:49 pm

    Holaaaaaaaaa, excelente , me funciono de maravilla, al igual que los demas , me sumo a agregar una tabla de usuario, para poder identificar y que no lo utilice cualquiera…

    Aiozzzzzzzz, besitosss…

  69. warner dijo,

    el June 7th, 2007 a las 8:38 pm

    Sería bueno que el paquete de descarga sea completo, para los que no sabemos se nos hace diíficil.
    Yo uso el AppServ par Windows y al momento de ingresar un NUevo Tema, me dice que no puedo grabar

  70. warner dijo,

    el June 8th, 2007 a las 12:52 am

    Estoy descubriendo los errores:
    Uno de ellos es:

    if(mysql_num_rows($rs)>0)

    pero debería ser así:
    if(”mysql_num_rows($rs)”>0)

    póngale comillas.

  71. Chicoxs dijo,

    el June 10th, 2007 a las 2:11 am

    Hola qeria sber donde puedo descargar los progrmas q me pide para hacer el foro????

  72. Mamufu dijo,

    el June 18th, 2007 a las 5:04 pm

    el foro me funciona de maravilla, si alguien a logrado implementar el logueo de usuario me podria mandar la solucion a mi correo. Gracias!!!

  73. D4RIO dijo,

    el June 21st, 2007 a las 2:50 pm

    Hey, no necesitan descargar programas para hacerlo, busquen un hosting que cuente con MySQL y phpMyAdmin y listo, por ejemplo http://web.iespana.es cuenta con MySQL 5.0 y hacer éste foro se hace simple. Por el tema de los usuarios se puede hacer con php mandando cookies o sea, para pasar la data de usuario y contraseña cuando se va cambiando de página, y en una tabla en MySQL contienes la data, las cookies pueden ser actualizadas para que no caduquen y borradas para el logout.

    MUII BUENO EL TUTO!

  74. ohk dijo,

    el July 1st, 2007 a las 3:37 pm

    Las sentencias sql no funcan, me podrian decir la version?

  75. Rucia dijo,

    el July 2nd, 2007 a las 2:59 pm

    La verdad es que se me ha hecho dificil que logre recuperar de la base de datos los registros, me inserta bien pero no me muestra nada. Estoy al borde de un ataque de nervios, he perdido toda la mañana :-S

  76. sam dijo,

    el July 11th, 2007 a las 1:25 pm

    no esta nada entendible su codigo fuente…
    ni las plantillas que usan. Porque no usan mejor las plantillas de Smarty.

  77. Facu dijo,

    el July 15th, 2007 a las 1:47 pm

    Hola a todos, la verdad que no entiendo mucho de esto, me gustaria saber como es la configuracion mysql para poder crear un foro para un sitio web que tengo proyectado, si alguien sabe, me puede pasar esos datos, desde ya muchas gracias

  78. Dieguin dijo,

    el August 6th, 2007 a las 3:58 am

    Muy bueno el tutorial, lo hice y funciona, pero le tuve que hacer unas correcciones minimas para que anduviera.
    Por ejemplo en el header.html pone un enlace con el nombre nuevo Tema, que llama a respuesta.php, pero no le asigna ningun valor a $_GET['id'] o a $_GET['citar'], es por eso que cuando se llama a respuesta tira error de variable no definida.
    Yo lo solucione agregando un operador ternario o como se llame el (?:)
    Espero que si alguien tuvo ese problemita pueda solucionarlo.

  79. daihenka dijo,

    el August 15th, 2007 a las 12:25 am

    holas:::
    pido ayuda respecto a esto, no he podido crear el php, lo he intentado muchas veces pero en realidad nisiquiera me funciona, al que me pudiera ayudar le estaria muy agradecido, mi msn es visual_101@hotmail.com
    bueno gracias! saludos!!

  80. KARLA dijo,

    el August 25th, 2007 a las 9:42 pm

    HOLA A TODOS, LES QUIERO PEDIR AYUDA, ALGUIEN TIENE UN FORO HECHO CON PHP Y MYSQL, QUE SEA SENCILLO, LE AGRADECERIA ME LO ENVIARA A MI CORREO QUE ES KARLA-LINDA-KARLA@HOTMAIL.COM. GRACIAS

  81. Antonio dijo,

    el August 28th, 2007 a las 12:40 pm

    Henry dijo,

    el May 17th, 2006 a las 4:44 am

    bueno mi problema es
    Notice: Undefined variable: pg in c:\appserv\apache\htdocs\x\pg.php on line 3
    1 2 3 4 Continuar >

    codigo:
    $rgs = 3; $tpg=4;
    if (!$pg)

  82. omar dijo,

    el September 12th, 2007 a las 2:04 pm

    hola, muy buen tutorial. Saludos

  83. laura dijo,

    el September 14th, 2007 a las 12:26 pm

    Hola! Necesito asesoramientoooo!
    El sist de comentarios php me funciona bien pero no me respeta los enter que el usuario ingresa……
    Les pego el codigo….Creo que los saltos de linea lso estoy coloconado en un lugar indebido. Garcias x la ayuda!

  84. matias dijo,

    el September 14th, 2007 a las 9:30 pm

    hola, gracias por todo, muy util.
    tengo un problema que espero me sepan ayudar, cuando inserto un mensaje y le doy click a “enviar mensaje” me sale lo siguiente:
    Error al grabar un mensaje: mysql_error
    cual seria el problema!?!?!?!?
    gracias!!!

  85. LUPITA dijo,

    el November 6th, 2007 a las 3:50 am

    CUAL ES EL CODIGO PARA DEJAR UN MENSAJES EN UN FORO

  86. MONTSE dijo,

    el November 12th, 2007 a las 8:52 pm

    Tengo varios problemas, el primero es que se insertan los datos en la base de datos pero no se muestran en pantalla y el segundo es que en formulario me da error en el título y en el mensaje.
    Por favor si alguien puede ayudarme. Muchas gracias


  87. el November 13th, 2007 a las 12:55 pm

    [...] Re: empezando en php y asp Si lo que queres es un manual de PHP el mejor la referencia de PHP oficial. Despues necesitas un servidor, yo te recomiendo que intentes con el XAMPP. Es muy simple de instalar y ya viene con todo lo que necesitas. La mayoria de aplicaciones PHP usan MySQL como base de datos asi que te dejo la documentacion oficial de MySQL, que te va a servir tambien. El tutorial que me sirvio para empezar a mi fue Crear un foro en PHP y MySQL. Una vez que lo haces despues te das cuenta que el resto de las aplicaciones son iguales. Lo unico que te queda es programar, probar y romperte la cabeza un buen rato Suerte! [...]

  88. atinimsoft dijo,

    el November 16th, 2007 a las 1:37 am

    al inicio tuve algunos incovenientes:
    1.-formulario PHP revise bien los values
    2,.archivo Agregar.php le agrege–>if(empty($ident))$ident=”0″;
    ::::los unicos errores q modifique y el foro funciona correctamente. cualquies consulta a tito8460@hotmail.com

  89. Pab dijo,

    el November 20th, 2007 a las 6:37 pm

    Hola estube viendo el tutorial y tube el mismo problema que varios, osea anda todo bien, pero los mensajes no salen publicados, si en cambio me aparecen en la base de datos. Osea del formulario a la base va, pero de la base a la hoja no va. Si saben que podria estar mal por favor posteenlo

  90. irais dijo,

    el November 20th, 2007 a las 7:00 pm

    hola, me puden ayudar por q me saca error en el index, en la linea de include(’footer.html’); y include(’header.html’); o de donde descargo esos archivos o como.

  91. Fran dijo,

    el November 30th, 2007 a las 3:31 am

    El error que tengo es simple, y hasta me pena que no lo pueda resolver, cuando entro a nuevo tema escribo los adtos en formulario y doy click en boton de enviar mensaje me sale esto:
    ¡Objeto no encontrado!
    El enlace requerido no ha sido localizado en este servidor. El enlace en la página referente parece tener algun error o ha expirado. Por favor comunique al autor de la página el error.

    Por favor contacte con el webmaster en caso de que usted crea que existe un error en el servidor.

    Error 404
    localhost
    11/29/07 23:27:36
    Apache/2.2.6 (Win32) DAV/2 mod_ssl/2.2.6 OpenSSL/0.9.8e mod_autoindex_color PHP/5.2.4

    quien me puede ayudar?

  92. gonzalo dijo,

    el December 8th, 2007 a las 3:33 pm

    la verdad que no se como hacerlo funcionar, yo estoy usando el xampp, tengo ue poner todos los archivos en httdocs? gracias!

  93. el_pulento dijo,

    el January 11th, 2008 a las 2:21 pm

    Gracias por el foro, uno aprende mucahs cosas con este mismo. Le pondre usuarios y estara del 1.

  94. lola dijo,

    el February 24th, 2008 a las 3:32 pm

    hola

    me baje el foro y casi me funciona,el problema es que me graba los mensajes en la base de datos pero no los muestra en el foro…..

    y tb me gustaria saber si alguien ha creado el foro con sesiones,osea con control de usuarios…..

    xfavor que alguien me ayude!!!!!!!es muy muy muy importante!!!!!!!

  95. lola dijo,

    el February 25th, 2008 a las 11:28 am

    xfavor webstudio!!!!!

    tengo un probla y es q se me graban los mensajes en la base de datos pero no me salen en el foro…..ni el nombre,ni fecha ni nada pero en al base de datos si….xfavor q alguien me ayude es muy muy importante…..

    si alguien le ha agregado usuaruios xfavor qme ayude……

  96. Madelin dijo,

    el February 29th, 2008 a las 2:43 pm

    Hola Espero esten bien..!!

    Tengo un problemita y la verdad me tiene parada en la creacion del foro… ya le hecho mil cosas… pero resulta es que el foro no me muestra ni los mensajes ni nada… si me deja insertar mensajes pero a la hora de imprimirlo me muestra las paginas vacias… refente al autor, mensaje, respuesta, en la pagina que abre el link titulo tampoco me muestra nada.. es como sino imprimiera esos items…
    Me podrian ayudar les agradeceria muchisimos…
    Mi correo es : moroanma@hotmail.com

  97. Jaime dijo,

    el March 18th, 2008 a las 3:23 pm

    Acabo de probarlo y no corre…

  98. Neo dijo,

    el March 27th, 2008 a las 5:30 am

    Hola a todos!! por favor si alguien tiene el foro funcionando correctamente, me puede enviar a mi correo rocatronic@hotmail.com, ya que no dominino php…de antemano les agradecería bastante

  99. VERONICA dijo,

    el March 31st, 2008 a las 3:10 am

    Que bueno que este foro si funciona porque el de ejemplo marca muchos errores , agradeceria a alguien que lo tenga corregido me lo envie gracias

    paredesisrael@hotmail.com

  100. Elena dijo,

    el March 31st, 2008 a las 9:37 am

    Hola a todos,

    Acabo de empezar a programar en php, y al probar el codigo me sale este error: Warning: mysql_connect(): Acceso negado para usuario: ‘Administrator’@'localhost’ (Usando clave: SI) in c:\archivos de programa\easyphp1-8\www\configuracion.php on line 8

    Estoy usando un servidor local, alguien sabe cuales son el usuario y la contraseñas preestablecidas, xq yo no puse ninguna.

    Si alguien tiene el codigo funcionando por favor que me lo mande: lanena2805@hotmail.com

  101. orlando dijo,

    el April 3rd, 2008 a las 4:44 am

    Hola, por favor, necesito ayuda urgente, baje el foro pero no me corre, por afor ayuda

  102. kilua dijo,

    el April 6th, 2008 a las 7:35 pm

    hola
    logre ingresar datos por el foro pero no me muestra los datos

  103. Kilua dijo,

    el April 7th, 2008 a las 7:34 pm

    Hola nuevamente yo he logrado crear un login para el foro pero tego el mismo problema que la mayoria que han posteado… que es la visualización del tema y las tespuestas que se alojan en la base de datos sin problemas (mysql), no creo nadie haya pidado el proble ma gracias de antemano

    portal_anime@hotmail.com

  104. jhonmario dijo,

    el April 8th, 2008 a las 4:00 pm

    A mi si me funciona pero me tocó modificar en el agregar.php
    esto

  105. jhonmario dijo,

    el April 8th, 2008 a las 4:07 pm

    Ah, se me olvidaba en esta linea de agregar.php

    $rs = mysql_query($sql, $con) or die(”Error al grabar un mensaje: “.mysql_error ());

    debe ir con doble parentesis al final de mysql_error es decir
    mysql_error()

    y tambien deben cambiar en el archvo configuracion.php

    su usuario, clave y nombre de la base de datos que tienen que haber creado en el mysql

  106. jhonmario dijo,

    el April 8th, 2008 a las 7:09 pm

    Bueno, creo que no postee bien en mensaje de las 4PM, la idea es que cambié el header de ubicación y lo dejé al comienzo y no al y asi se me quitaron los errores. Asi

  107. jhonmario dijo,

    el April 8th, 2008 a las 7:09 pm


  108. kilua dijo,

    el April 8th, 2008 a las 7:42 pm

    hola jhonmario
    sabes yo no tengo ningun problema de error al ingresar un nuevo tema lo crea en la base sql ya que por el phpadmin reviso la base y este esta creado también cuando hay respuesta al tema.
    Lo malo es que al entrar al foro no me muestra ningun tema ni respuesta y eso que deplega las filas con los titulos (autor, mensaje, etc.). he revisado el codigo y no encuentro nada (según yo, ya que recien estoy en esto del php). si a ti te muestra hay la posibilidad que me envies los codigo s involucrados por correo. portal_anime@hotmail.com
    de antemano muchas gracias

  109. Elena dijo,

    el April 10th, 2008 a las 12:12 pm

    Muchas gracias jhonmario, tu ayuda es de gran utilidad, pero despues de revisarlo mil veces me siguen apareciendo estos errores al ingresar un nuevo tema. Alguna idea?
    Notice: Undefined index: id in c:\archivos de programa\easyphp1-8\www\sitio sin nombre 4\respuesta.php on line 4
    Notice: Undefined index: citar in c:\archivos de programa\easyphp1-8\www\sitio sin nombre 4\respuesta.php on line 5
    Notice: Undefined variable: titulo in c:\archivos de programa\easyphp1-8\www\sitio sin nombre 4\funciones.php(6) : eval()’d code on line 10

    Notice: Undefined variable: mensaje in c:\archivos de programa\easyphp1-8\www\sitio sin nombre 4\funciones.php(6) : eval()’d code on line 14


  110. el April 26th, 2008 a las 2:44 pm

    hola buenas, me parece increible la forma de explicar todo esto, la verdad que yo no se como lo haria, asi que nada mas que por eso felicidades por este articulo, bueno a mi me pasa como a mucha otra gente que veo por aqui me sale un fallo
    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /mnt/web7/12/56/51765556/htdocs/foro/index.php on line 10
    y la verdad que supongo es algun problema con el servidor mysql mio pero la verdad que no se, porque puse ya todo lo de cambiar el nombre de usuario y server de mysql y sigue igual no me graban los mensajes me encantaria que alguien me hechara una mano, porque me quede en ese paso y no hay forma, un saludo grande y otra vez gracias por este articulo.

  111. Jr dijo,

    el May 11th, 2008 a las 11:05 pm

    Muy bueno

  112. fideos dijo,

    el May 21st, 2008 a las 9:03 am

    Hola a todos. Ya he resuelto el tema de que no te aparecen los mensajes. Te los registra en la base de datos pero no aparecen.
    La cuestión es que en el archivo index.php en la línea :
    if (mysql_num_rows ($rs) > 0 ) , la salida que nos da la sentencia
    mysql_num_rows ($rs) > 0 debe estar metida en una variable. Simplemente lo que yo he hecho es esto.
    $a = mysql_num_rows ($rs)
    if ($a > 0 )
    Funciona perfectamente

  113. Grest dijo,

    el May 26th, 2008 a las 4:18 pm

    Hola, a todos soy nuevo en esto me puden decir como lo hago funcionar en mi pc que necesito por que no habre los archivos con extensión php y las páginas web no aparece nada gracias

  114. Javier V. dijo,

    el June 1st, 2008 a las 2:58 pm

    He tratado de correr codigo php combinado en htm, pero veo que el codigo php no funcioan, parece que hay que instalarlo, la pregunta es si se desarrolla una web com php y se publica, como se correria en los pc que no tiene este lenguaje instalado?

  115. Alejandro dijo,

    el June 5th, 2008 a las 3:15 pm

    si kieren un foro gratis usen el phpBB creo q esta en la version 2 es adaptable a cualquier web, solo tienen q adaptarlo y ya. si no lo consiguen gratis bajenselo del Ares !..

  116. gilbeRt_fox dijo,

    el July 8th, 2008 a las 5:04 pm

    la idea es tener como base el código y el resto hacerlo por uno mismo!! vaaamos! errores como esos de variables indefinidas no las puede estar corrigiendo el de nuevo!!

  117. Magi dijo,

    el July 11th, 2008 a las 12:58 pm

    Yo ya tengo mi foro funcionado pero es q cuando tengo muchos comentarios se ve muy feo…. no se si alguien sepa como pueda ocultar los comentarios o hacerlos mas pequemos…pero que no tenga que borrarlo … Gracias

  118. Oscar dijo,

    el July 18th, 2008 a las 12:53 pm

    ta buenazo

  119. nico dijo,

    el July 22nd, 2008 a las 8:48 pm

    donde estan los link de descargas ..?

Deja un comentario