+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 (~9 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 (~15 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 (~16 anos atrás)

Ernesto disse:
muito bom o forum mano!! parabéns!!!
21/06/2006 12:13pm (~19 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 (~20 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 (~22 anos atrás)

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

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

Valeu, romano
01/10/2002 10:57am (~22 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 (~22 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 (~22 anos atrás)

Novo Comentário:

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