+2

Um fórum simples em PHP/MySQL

criado por Rodrigo Romano Moreira em 29/08/2002 10:24pm
Estava na faculdade com sono (assistindo aula) e para não babar na carteira comecei a escrever um código em php.

Como já criei um contador, um livro de visitas e um chat (na realidade dois), resolvi criar um fórum dessa vez. Tive a feliz idéia de criar funções recursivas (acho que não tem maneira melhor). Para começar criei uma tabela de nome 'msg' no MySQL:

CREATE TABLE msg (
  codigo int(11) NOT NULL auto_increment,
  autor varchar(255) default NULL,
  email varchar(255) default NULL,
  titulo varchar(255) default NULL,
  mensagem mediumtext,
  data varchar(30) default NULL,
  pai int(11) default NULL,
  topico int(11) default NULL,
  resposta char(3) default NULL,
  PRIMARY KEY  (codigo)
);

As mensagens inseridas na tabela acima seguem a seguinte lógica:


  • Mensagens de um mesmo tópico ,tem um numero igual(campo topico)

  • Todas as mensagens têm um pai ,com exceção das mensagens inicias (pai=0)



Depois criei um arquivo com as configurações do fórum, chamado config.php:

<?php
$host="localhost"; // Host do MySQL
$user="root"; // Usuário do MySQL
$password=""; // Senha do MySQL
$database="forum"; // Database no MySQL
?>

E por ultimo o formulário que vai ser usado no fórum, chamado form.php:

<a name="form"></a>
<form action="trata.php" name="form" method="post"><TABLE cellSpacing=0 cellPadding=0 border=0>
  <TR>
    <TD bgColor=#fff8d8> <TABLE cellSpacing=0 cellPadding=2 border=0>
        <TBODY>
        <TD bgColor=#fff8d8> <TABLE  cellSpacing=0 cellPadding=2 border=0>
            <TBODY>
              <TR>
                <TD  bgColor=#99cc99 colSpan=2
                  height=23><FONT color=#000000>Enviar mensagem</FONT></TD>
              </TR>
              <TR>
                <TD noWrap height=23><FONT color=#000000>Seu Nome:</FONT></TD>
                <TD height=23><INPUT maxLength=30 size=30 name=nome></TD>
              </TR>
              <TR>
                <TD noWrap height=23><FONT color=#000000>Seu E-mail:</FONT></TD>
                <TD height=23><INPUT maxLength=200 size=30 name=email></TD>
              </TR>
              <TR>
                <TD noWrap height=23><FONT
                color=#000000>Assunto:</FONT></TD>
                <TD height=23><INPUT maxLength=80 size=30 name=titulo value="<?=$titulo;?>"></TD>
              </TR>
              <TR>
                <TD noWrap align=left width="100%" colSpan=2> <TABLE cellSpacing=0 cellPadding=5 border=0>
                    <TBODY>
                      <TR>
                        <TD vAlign=top align=middle><FONT face=courier>
                          <TEXTAREA name=mensagem rows=10 wrap=VIRTUAL cols=45></TEXTAREA>
                          </FONT></TD>
                      </TR>
                    </TBODY>
                  </TABLE></TD>
              </TR>
              <TR>
                <TD noWrap align=left width="100%" colSpan=2> <p align="center">
                    <INPUT type=submit  name=post value="submeter">
                    <input type="hidden" name="pai" value="<?=$pai;?>">
                    <input type="hidden" name="topico" value="<?=$topico;?>">
                  </p></TD>
              </TR>
            </TBODY>
          </TABLE></TD>
      </TABLE>
</form> 

Comentários:

Mostrando 1 - 10 de 24 comentários
marciofi disse:
Olá amigo, sou novo com PHP, por favor poderia me ajudar com os seguintes erros referente aos Scripts do Forum:

Warning: include(./func.php): failed to open stream: No such file or directory in C:\xampp\htdocs\forum\topicos.php on line 3

Warning: include(): Failed opening './func.php' for inclusion (include_path='.;\xampp\php\PEAR') in C:\xampp\htdocs\forum\topicos.php on line 3

Fatal error: Call to undefined function prox_nivel() in C:\xampp\htdocs\forum\topicos.php on line 25
13/07/2015 6:30pm (~8 anos atrás)

lucas zgoda disse:
oi eu sou um novato completo em php mas eu estava fazendo um site pra sala de aula do meu irmao e eles pediram se eu podia criar um forum pra eles so q eu to com poco tempo mas quero aprender mais sobre php, eu so queria saber se vc poderia mandar um forum em php pra mim ediatar pq eu n endi muito sobre isso e tbm queria saber como colocar no meu site html.valeu meu e-mail é lucas_zgoda@yahoo.com.br
14/02/2010 5:16pm (~14 anos atrás)

Guilherme disse:
O me passa essa func.php pq sem ela ñ ta dando certo o php me manda no meu email gui.valadares@narutoultimate.net
21/06/2009 7:48pm (~14 anos atrás)

Ernesto disse:
muito bom o forum mano!! parabéns!!!
21/06/2006 12:13pm (~18 anos atrás)

eu tentei copia e corrigir algumas coisa.
esta cadastrando no banco mas ñ quer listar no topico(coloquer a funcao q acho q faltava no func.php - proximo Nivel), veja me ajudaaaa
18/11/2004 9:24am (~19 anos atrás)

Ai .. Deu um erro na linha 24 do topicos.php

o erro é esse
Warning: Supplied argument is not a valid MySQL result resource in /var/www/default/forum/topicos.php on line 24

o que pode ser?
30/10/2002 6:17pm (~21 anos atrás)

Tá lá acabei de entrar : www.dcc.ufmg.br/~romano/forum
01/10/2002 2:44pm (~21 anos atrás)

coloquei seu link..... e apareceu um monte de erro...... perque.... tirou fora do ar

Valeu, romano
01/10/2002 10:57am (~21 anos atrás)

Tem comoeu enviar por exemplo no fim do dia as novas msgs de um determinado topico para pesoas que estejam cadastradas?
Como enviar e selecionar o topico eu sei.
O problema é como fazer ele executar automático num determinado horário todo dia.
15/09/2002 9:06pm (~21 anos atrás)

Na página dois do artigo.
Ou me pega o script :
http://www.phpbrasil.com/scripts/script.php/id/376
09/09/2002 10:42pm (~21 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)