FORO PHP Y MYSQL – FINAL

En esta ocasión comparto el foro en su parte final el cual contiene lo siguiente:

  • Categorías
  • Foro
  • Subforo
  • Temas
  • Tema
  • Comentarios
  • Usuarios
  • Estadísticas: visitas de temas, temas por foro, ultimo comentario.
  • Administrador
  • Avatar: Contiene una clase que convierte las imágenes de perfil a un tamaño de 70px x 70px.

Fue desarrollado en el lenguaje de programación PHP y con base datos en MYSQL, para el front end se realizo con html5 y css.

Se programo con clases no esta al 100% en POO ya que aun ando aprendiendo a programar en php, aun utiliza el driver nativo de mysql pero cambiarlo a mysqli seria muy fácil, ya que todo es operado por arreglos.

Si alguien lo pide podría cambiarlo a rutas amigables.

foro-foro

Panel de control

Permite crear y eliminar las categorías, foros, subforos, para entrar al panel hay que iniciar sesión como administrador el usuario es admin y la clave 123456.

foro-panel

El administrador también puede eliminar  temas y comentarios.

Usuario

foro-registrousuario

Para poder registrarse como usuario hay que dar en el link de registro y rellenar los campos, al dar registrar automáticamente te loguea. Un usuario solo puede crear y eliminar temas y comentarios creados por el y  adicional modificar su perfil.

Listados de temas

foro-temas

El listado y paginado de los temas fueron tratados en al parte 3 de los foros.

Crear temas

foro-tema

Para crear un tema necesitas iniciar sesión y abrir el foro o subforo donde quieras realizar el tema y presionas en el botón de crear tema, solo necesitas escribir el titulo y el contenido del tema, en el campo contenido tiene agregado un editor WYSIWYG que traduce el texto plano a html. Los únicos temas que puede eliminar el usuario son los creados por el mismo.

Comentarios

foro-comentarios

Subir imagenes

1.- seleccionar el icono de imagenes

subir imagen 1

2.- selecionar el archivo

subir imagen 2

3.- elige tu imagen

subir imagen 3

4.- subir tu imagen al servidor

subir imagen 4

5. insertar la imagen en el comentario o tema

subir imagen 5

6.- imagen insertada en el comentario o tema, todas las imagenes se suben a una carpeta upload en la raiz.

subir imagen 6

Los comentarios son igual que un tema solo que sin títulos.

  • Driver mysqli
  • Panel de administrador
  • Eliminar comentarios
  • Error en los comentarios corregido (13/10/2015)
  • Elimianr usuarios desde el administrador o darse de baja por el mismo usuario (19/11/2015)

45 comentarios en “FORO PHP Y MYSQL – FINAL”

  1. Carlos dice:

    hola amigo esta muy bien todo pero me gustaria saber como contestar un comentario de alguien en especifico.

    1. sun2012 dice:

      pues tendrías que navegar hasta el tema y responderlo, pues si me da tiempo creo un panel de comentarios por usuarios, saludos.

  2. ANdrew dice:

    Hola amigo , tengo un pequeño problema :S
    Notice: Undefined index: nombre in C:\xampp\htdocs\forum\tema.php on line 98

    Notice: Undefined index: id in C:\xampp\htdocs\forum\tema.php on line 98

    1. sun2012 dice:

      hola es por la versión de php solo indica que no estan definidas esas variables, valida con un isset si la variable existe y ya, de todos modos ya actualize el archivo, puedes descargarlo, saludos.

  3. Samuel dice:

    me gusto tu foro pero cuando no estas logiado y comentas sobre un tema da error deberia bloquearse si no estas logiado o arreglar el problema

    1. sun2012 dice:

      Ok, lo corrió y lo subo. Saludos.

    2. sun2012 dice:

      corregido favor de checarlo, si es lo que comentas. saludos

  4. Samuel dice:

    oK, revise la correción de agregar comentario ahora si , seguire probando y te comento Saludos

  5. Rogelio dice:

    Muy buen tutorial me sirvió bastante, pero no puedo insertar una imagen en los comentarios, y en las etiquetas de los foros por ejemplo estoy en pop, y le doy a foros, me sale not founds The requested URL /foro2/ was not found on this server. en donde puedo arreglar el link?? saludos y gracias.

    1. sun2012 dice:

      hola en la carpeta de class hay un archivo llamado conexion.php y en el una función que dice ruta, le pones la ruta donde colocaste el foro, en el archivo que dice leer especifica que ahy que cambiar esa ruta, saludos.

       public static function ruta() {
            return "http://localhost/foro2/";
         }
      
  6. Samuel dice:

    Probre lo de los cometario y bien creo que falta una rutina para el administrador para borrar usuarios y tambien si el usuario de una cuenta pueda darse de baja, por otro lado en la parte para comentar estas utilizando una libreria para estp en los equipos que se encuentran el recuadro por ejemplo insertar imagen no lo hace el link html no se para que es por lo demas tu foro es el mejor que es visto

    Saludos,,,,,

    1. sun2012 dice:

      ok, lo corrigo y actualizo mañana saludos…

  7. Rogelio dice:

    Muchas gracias ya corregí los link, veo que subiste una nueva versión del foro, pero esta no contiene en el cuadro donde comentas la barra que te permite cambiar la letra y subir imágenes, si me pudieras orientar para poder agregar eso, de nuevo muchísimas gracias tu tutorial del foro me ayudado muchisimo.

    1. sun2012 dice:

      Necesitas estar logueado como usuario para que se active crear temas y comen varios.

  8. Rogelio dice:

    Perdón, creo que no me di a entender bien, en el cuadro de comentario, ya no aparece el editor WYSIWYG, igualmente si me pudieras orientar para agregarlo, y de nuevo muchas gracias por tomarte el tiempo de responder mis dudas.

    1. sun2012 dice:

      si me aparece, puedes subir una captura de pantalla.

  9. Martin dice:

    Hola en primer lugar felicitarte por el tutorial y en segundo pedirte ayuda para ver que código se necesita para poder poner foros cerrados y revisar tanto los temas nuevos como los comentarios por el administrador antes de ser publicados.
    Una vez mas gracias por anticipado.

    1. sun2012 dice:

      Por el momento no tiene esa opción tendrías que programarla. Para finales del año publicaré una nueva versión con esas opciones de configuración y responsivo con temas a elegir. Saludos.

  10. Martin dice:

    Michas gracias. Permaneceremos atentos a la nueva versión.

  11. Martin dice:

    Hola sun2012 de nuevo quería consultarte el código necesario para qué las fechas se vean en formato dd/mm/aaaa y no en formato ingles aaaa/mm/de.
    Salu2… y gracias por adelantado

    1. sun2012 dice:

      hola pues falto decirme de dodne obtienes esos datos si los obtines de la base de datos pues debes crear una función, si los obtines de la date en php pues debes consultar el formato para mostrar la fecha como quieres, saludos.

      1. Martin dice:

        Me da igual de un sitio que de otro. En ese aspecto me he limitado a copiar tu código y lo visualizo en formato ingles. No se si es porque lo estoy probando en local o porque de momento lo tienes diseñado así.
        Una vez mas gracias por anticipado.

  12. Viejo! te pasaste….. el foro esta funcionando 100%, muchas gracias !!!

  13. ALEJANDRO RONDON dice:

    ya no sirbe el link hermano agregalo

      1. ALEJANDRO RONDON dice:

        HOLA SUN2012 COMO ESTAS MI ESTIMADO CUANDO TRATO DE DESCARGARLO ME SALE EL SIGUIENTE MENSAJE: Ha superado la cuota del ancho de banda HERMANITO PODRIAS ENVIARLO A MI CORREO LO NECESITO URGENTE PARA UN GRAN PROYECTO POR FAVOR.
        E-MAIL: josrivera2014@gmail.com

        1. sun2012 dice:

          hola, es por que ya excediste la cantidad permitida de descargas en mega, ya te lo envie a tu correo, saludos.

          1. ALEJANDRO RONDON dice:

            QUE DIOS TE BENDIGA AMIGO ERES UN EXCELENTE PROGRAMADOR ESTE FORO SERA UN GRAN EXITO EN MI PROYECTO GRACIAS HERMANITO

  14. Martin dice:

    Hola Sun2012 cuando en algún foro no hay registros insertados me da el siguiente error
    Warning: Invalid argument supplied for foreach() in …..
    ¿Hay alguna forma de eliminarlo?
    Gracias por anticipado

    1. sun2012 dice:

      Valida con sizeof antes del listado. Saludos.

      1. Martin dice:

        Perdona mi ignorancia pero eso como se hace?

        1. sun2012 dice:

          if(sizeof($datos)>0){ // Listado } else { echo”no hay datos que listar”;}

  15. Martin dice:

    Hola Sun perdona mi insistencia pero me sigue dando error para que no de hay que quitar el foreach pero entonces sale que no hay datos. Incluso lo he probado con tu ejemplo y si creas una categoría y no le agregas un foro también sale.
    Gracias de antemano

    1. sun2012 dice:

      hola, ya esta saludos.

  16. Hola Necesito ayuda cada ves que trato de registrarme o log me manda a el offline.html y ya configure el nombre de el host, usuario y pass, también nombre de la base de datos

    1. sun2012 dice:

      Hola. Pues checa bien porque ese archivo sale cuando algun dato esta mal en la base de datos. Saludos.

      1. hola, me podrías ayudar de una manera mas detallada? en verdad me gusta el proyecto pero sigo sin entender mi error

  17. Hola Muchas gracias ya lo resolví esta genial este proyecto.

  18. Pablo Cifuentes dice:

    Hola disculpa como seria una funcion para dar like y para editar los comentarios/publicaciones?
    lo estaba tranto de hacer en otro archivo similar al eleminar.php, pero no logro insertar los nuevos datos

    1. sun2012 dice:

      hola pues igual edita tomando el id del comentario y listas su contenido agregando una función en la clase y ya, y el like pues busca en la api de facebook.

  19. No conecta hostinger dice:

    amigo puedes ayudarme? no conecta en hostinguer, ya e realizado conexiones conotros archivos pero este no conecta y me manda a el offline.html

    1. sun2012 dice:

      Creo que hostingear no soporta mysqli. Saludos

  20. Estefania dice:

    Buen proyecto. Adaptandolo. Pero un error a subir imagenes si inserta pero no guarda en carpeta /upload
    error
    Warning: Creating default object from empty value in C:\xampp\htdocs\foro5\librerias\tiny_mce\plugins\phpimage\config.php on line 25

    1. sun2012 dice:

      Hola yo lo probe y si funciona, checa si tienes los permisos en la carpeta o con el debug checa donde esta el error. Saludos.

Deja un comentario