Jump to content


Photo

( Tuto ) Criando Um Guestbook


  • Faça o login para participar
6 replies to this topic

#1 pyro3x

pyro3x

    E

  • Usuários
  • 201 posts
  • Sexo:Masculino

Posted 17/05/2007, 11:21

OBS: Guestbook beeem simples, so p/ quem ta afim de aprender ;)

O que é?

- Sistema de GUESTBOOK (mural de recados)


Páginas:

- Classe Guestbook (class.guestbook.php)
- Classe Conexao (class.conexao.php)
- Adicionar recado (add.php)
- Ver todos recados (index.php)


1) Primeiramente a tabela :}

CREATE TABLE `guestbook` (
`id` INT(50) NOT NULL AUTO_INCREMENT PRIMARY KEY, 
`nome` VARCHAR(200) NOT NULL, 
`email` VARCHAR(200) NOT NULL, 
`mensagem` TEXT NOT NULL, 
`data` VARCHAR(10) DEFAULT '00/00/0000' NOT NULL, 
`hora` VARCHAR(10) DEFAULT '00:00:00' NOT NULL
) TYPE = MYISAM;


2)Página de conexao com banco(class.conexao.php)

<?php
class  conexao{ 

 var $hostdb = "localhost";
 var $userdb = "root";
 var $passdb = "";
 var $namedb = "banco";
 
 //Funcao para conectar com db
 function conecta()
 {
  $conecta  = mysql_connect($this->hostdb,$this->userdb,$this->passdb) or die(mysql_error());
  mysql_select_db($this->namedb,$conecta) or die(mysql_error());
 }
}
?>

3) A classe guestbook (inserir novo,listar todos,tratamento de smyles..)

<?php
require("class.conexao.php");
class guestbook extends conexao
{
 var $mensagem;
 var $tabela = "guestbook";//nome da tabela
 
 //Cria conexao com db
 function criaConexao()
 {
  $conexao = new conexao;
  $conexao->conecta();
 }
 
 //Tratamento dos smiles
 function tratarSmile($mensagem)
 {
  //Pega os caracteres responsaveis por mostrar o smyle e pega a imagem correspondente
  //Troca o [:)] pela imagem 

  $mensagem = str_replace("[:)]","<img src=\"sorrindo.gif\">",$mensagem);
  $mensagem = str_replace("[cap]","<img src=\"capetinha.gif\">",$mensagem);
  $mensagem = str_replace("[assobiando]","<img src=\"assobiando.gif\">",$mensagem);
  return ($this->mensagem = $mensagem);
 }  
 //Mensagens de erro
 function erro($pagina,$erro)
 {
  header("Location: $pagina?erro=$erro");
  exit;
 }
 //Add novo recado
 function adicionarRecado()
 {
  $this->criaConexao();
  $tabela = $this->tabela;
  $nome = trim(strip_tags($_POST['nome']));
  $email= trim(strip_tags($_POST['email']));
  $mensagem = trim(strip_tags($_POST['mensagem']));
  if(!$nome)
   $this->erro("add.php","Preencha seu nome!");
  if(!$email)
   $this->erro("add.php","Preencha seu e-mail!");
  if(!$mensagem)
   $this->erro("add.php","Preencha uma mensagem!");
  $data = date("d/m/Y");
  $hora = date("H:i:s");
  $add = mysql_query("INSERT INTO $tabela 
	 (id,nome,email,mensagem,data,hora)
	 VALUES
	 ('','$nome','$email','$mensagem','$data','$hora')");
  if($add)
   $this->erro("add.php","Mensagem adicionada com sucesso!");
  else
   $this->erro("add.php","Erro ao adicionar, tente mais tarde!");
 }
 function listaRecados()
 {
  $this->criaConexao();
  $tabela = $this->tabela;
  
  $sql = mysql_query("SELECT * FROM $tabela ORDER BY id DESC") or die(mysql_error());
  
  if(mysql_num_rows($sql) > 0)
  {
   while($dados = mysql_fetch_array($sql))
	{
	 $this->tratarSmile($dados['mensagem']);
	 echo "Mensagem adicionada por:<a href=\"mailto:".$dados['email']."\">".$dados['nome']."
mailto:".$dados['email']."\">".$dados['nome']."</a><br />";
	 echo "Add dia: ".$dados['data']." às ".$dados['hora']."<br />";
	 echo "Mensagem:<br />";
	 echo "&nbsp;".$this->mensagem."<br />";
	 echo "------------------------------------------------------------------------<br />";
	}
  }else {
   echo "Nenhum recado adicionado";
   }
 }
}
?>


4)Página para adicionar novos recados

<?php include("class.guestbook.php"); ?>
<?php $guestbook = new guestbook; ?>
<?php if($_GET['acao']=="adicionar") $guestbook->adicionarRecado(); ?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Guestbook</title>
<script type="text/javascript">
function add(qual)
{
 document.frmadd.mensagem.value += qual;
}
</script>
</head>
<body>
<p><a href="index.php">Todos recados</a> | <a href="#">Adicionar recado</a><br /><?=$_GET['erro'];?></p>
<p>&nbsp;</p>
<form id="frmadd" name="frmadd" method="post" action="<?=$PHP_SELF?>?acao=adicionar">
  <p>Nome:
	<input name="nome" type="text" id="nome" />
	<br />
	E-mail:
	<input name="email" type="text" id="email" />
	<br />
	<a href="java script:add('[assobiando]');"><img src="assobiando.gif" width="35" height="20" border="0" /></a><a href="java script:add('[cap]');"><img src="capetinha.gif" width="25" height="23" border="0" /></a><a href="java script:add('[:)]');"><img src="sorrindo.gif" border="0" /></a><br />
	Mensagem: 
	<textarea name="mensagem" id="mensagem"></textarea>
  </p>
  <p>
	<input name="btnadd" type="submit" id="btnadd" value="adicionar" />
	<input name="btnclear" type="reset" id="btnclear" value="limpar" />
  </p>
</form>
<p>&nbsp;</p>
</body>
</html>

e finalmente...a pagina onde será mostrado os recados:

<?php include("class.guestbook.php"); ?>
<?php $guestbook = new guestbook; ?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Guestbook</title>
</head>
<body>
<p><a href="add.php">Adicionar recado?</a> | <a href="index.php">Todos recados </a></p>
<p>
  <?php $guestbook->listaRecados(); ?>
</p>
</body>
</html>


Disponibilizei o tutorial para download: pra baixar clica aqui :}

Edição feita por: pyro3x, 17/05/2007, 11:27.


#2 losorio

losorio

    Novato no fórum

  • Usuários
  • 4 posts
  • Sexo:Feminino
  • Localidade:Portugal

Posted 26/06/2007, 06:18

Primeiro que tudo quero agradecer, por este fantastico trabalho!

Agora uma duvida

o que faz a linha de codigo
<?php if($_GET['acao']=="adicionar") $guestbook->adicionarRecado(); ?>

e mais abaixo no codigo

action="<?=$PHP_SELF?>?acao=adicionar">

é que ao carregar no botão de adicionar uma mensagem, dá erro a dizer que é proibido aceder á pagina ( e na linha de enderços aparece
http://localhost/guestbook/<?=$PHP...?acao=adicionar

Será que me pode ajudar??

#3 sk15

sk15

    Super Veterano

  • Usuários
  • 2071 posts
  • Sexo:Masculino
  • Localidade:SP - SP

Posted 26/06/2007, 07:46

Bem eu não só ele mas acredito que possa te responder ..

o que faz a linha de codigo
<?php if($_GET['acao']=="adicionar") $guestbook->adicionarRecado(); ?>

Essa linha traz um condição para funcionar ou seja ... ela pega o valor que vem da URL no caso (arquivo.php?acao=[VALOR] / $_GET['acao']) e compara com a condição ou seja se o valor for igual a "adicionar" ele ira atvar a classe/função responsavel por adicionar os dados do cometario

e mais abaixo no codigo
action="<?=$PHP_SELF?>?acao=adicionar">

Nessa caso ele apenas faz uma "jogada", para o nome do arquivo ser aprensetado automaticamente ou seja você poderá renomear o arquivo que contem esse código que no HTML sempre será aprentado o nome dele.
$PHP_SELF = Retorna o nome do arquivo em que ele está

é que ao carregar no botão de adicionar uma mensagem, dá erro a dizer que é proibido aceder á pagina ( e na linha de enderços aparece
http://localhost/guestbook/<?=$PHP...?acao=adicionar

Se está aparecendo assim é sinal de que seu PHP está configurado para não aceitar tags curtas ou seja "<?=" ou até está com o "register_globlas" desativado dependendo da situação ...

Faça o seguinte em todos os arquivos que conter a expressão "<?=$PHP_SELF?>" troque pelo seguinte "<?php echo $_SERVER["PHP_SELF"]; ?>"

#4 losorio

losorio

    Novato no fórum

  • Usuários
  • 4 posts
  • Sexo:Feminino
  • Localidade:Portugal

Posted 26/06/2007, 10:39

Problema resolvido..

Agora o que acontece é que ao clicar no botao adicionar depois de ter preenchido os campos todos, a mensagem não é acrescentada... ( os campos são limpos, mas nao acontece nada)

Edição feita por: losorio, 26/06/2007, 16:10.


#5 DECampos

DECampos

    BaixaToques.com

  • Usuários
  • 103 posts
  • Sexo:Masculino
  • Interesses:=)

Posted 21/07/2007, 17:17

Ta massa, gostei :D continua fazendo tutoriais pra galera aí...
Euri.me
Rir ainda é o melhor remédio. Veja de um jeito inovador, randomicamente, imagens engraçadas, vídeos engraçados, etc...

#6 crix11

crix11

    Novato no fórum

  • Usuários
  • 2 posts
  • Sexo:Não informado

Posted 28/03/2009, 07:50

Não percebo a primeira parte, 1) Primeiramente a tabela.
Alguem me pode dizer o que fazer?

#7 MatheusTwister7

MatheusTwister7

    Novato no fórum

  • Usuários
  • 1 posts
  • Sexo:Masculino
  • Localidade:RJ

Posted 26/01/2011, 17:25

Oi Muito íncrivel esse tutorial cara! Consegui fazer funcionar! Está adicionando dados na tabela e ainda mostra na index! Só que tah dando erro no meu botão adicionar..... aparece esse erro aqui:

Warning: Cannot modify header information - headers already sent by (output started at diretório do site .... class.guestbook.php:83)
in .....diretório do site.....class.guestbook.php on line 29


Alguém pode me ajudar?

Valeu!




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq