Guestbook Livrolivre

Publicado por Binho 23/01/2005

[ Hits: 7.811 ]

Download livrolivre.zip




Livro de visitas bem simples, com paginação simples.
Fácil, para iniciantes.

  



Esconder código-fonte

<title>Livro Livre</title>
<body bgcolor="#E6EED5" topmargin="0">
<table width="100%" border="1" align="center">
  <tr>
    <td height="17">
      <div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>Livro 
        Livre</b></font></div>
    </td>
  </tr>
</table>
<?php
/* LivroLivre
*simples em php com paginação e que utiliza banco de dados Mysql, isso tudo em um só arquivo.
*fácil de entender
*by Fabiano Monteiro
*This program is free software
*/
//Usando os arrays superglobais $_GET, $_POST

$host = "localhost"; //endereço do servidor no qual está localizado o banco de dados
$user = "root";     //Nome do usuário a ser utilizado para a abertura da conexão
$senha = "123";    //Senha para abertura da conexão
$db = "livro";    //nome do banco de dados onde vc criou a tabela 'comentarios'

   $conecta = mysql_connect($host, $user, $senha) or die("Erro de conexão!");
   mysql_select_db($db, $conecta) or die("Erro!");
   
   $n= $_GET["n"]; //usando array super global $_GET, tratando a variável que vêm da URL
   
   $inicio= $n;
// A paginação simples
// variavel q recebe um determinado nº e se referirá à linha
// em que irá começar a contagem
// Aqui nao está em ascendente, mas sim em decrescente
// exibe o último registro adicionado no banco, ou seja, a última
// mensagem
// As linhas no SQL começam a contar a partir do zero.
// zero se refere ao primeiro registro
//Aqui zero se refere ao último registro por estar em DESC
// de primeira $n vale 0 e executa a segunda consulta
// ao clicar em anterior é somado n=($n+5)
// ao clicar em inicio diminue até chegar n igual a 0
// n=($n-5)

   if($inicio != 0){
   $sql = mysql_query("SELECT * FROM comentarios ORDER BY id DESC LIMIT $inicio, 5") or die("Erro de consulta!");
   }
   elseif($inicio == 0){
$sql = mysql_query("SELECT * FROM comentarios ORDER BY id DESC LIMIT 0, 5") or die("Erro de consulta!");
   }

   
   
   $acao = $_GET["acao"]; //usando array super global $_GET, tratando a variável que vêm da URL
   $nome = $_POST["nome"]; //usando array super global $_POST, não é passado pela URL
   $email = $_POST["email"]; //usando array super global $_POST, não é passado pela URL
   $comentario = $_POST["comentario"]; //usando array super global $_POST, não é passado pela URL
    
    //inserindo na tabela 'comentarios' os dados após a internauta clicar em 'Postar'
     //e uma variável '$postou' recebe a mensagem para o internauta
     //atualizar a página e exibir seu comentário      
   
if ($acao == Postar){
   $sql2 = mysql_query("INSERT INTO comentarios (nome,email,comentario) VALUES
('$nome','$email','$comentario')");


    $postou = "[<a href=\"livrolivre.php\">Atualize para ver seu comentário</a>]<br>";
   // <a href=\"livrolivre.php\">  <- Caso mude o nome do programa para index.php
    // ou outros, substitua o 'livrolivre.php'
}

echo"<font face=verdana,arial size=2>
     <table width=100%><tr><td>
   <form name=livro method=post action=?acao=Postar>
   <tr><td><font face=verdana,arial size=1>
Nome:</td></tr><tr><td>
   <input type=text name=nome></td></tr><tr>
    <td><font face=verdana,arial size=1>
Email:</td></tr><tr><td>
   <input type=text name=email></td><tr><td>
    <font face=verdana,arial size=1>
Comentário:</b></td></tr>
    <tr><td>
   <textarea type=textfield name=comentario rows=5 wrap=hard cols=50></textarea><br>
    <input type=reset name=bot value=Limpar>
    <input type=submit name=botao value=Postar></td></tr><tr><td>
© livrolivre by <a href=\"mailto:fabianophp@hotmail.com\">fabianom</a></td></tr>
</form>
</p>
    <br>
   <b>Mensagens:</b> $postou<br><br>";

//enquanto '$linha' recebe todas as linhas da tabela 'comentarios' realizado na consulta
//idpage, nomepage ... recebe de $linha[""]; os valores achados
// e 'echo' exibe na página, mas só 5 consultas por página por causa do Limit
// que usamos.
   while($linha = mysql_fetch_array($sql))
{
$idpage = $linha["id"];
$nomepage = $linha["nome"];
$emailpage = $linha["email"];
$comentariop = htmlspecialchars($linha["comentario"]);
$comentariopage = nl2br($comentariop);

echo "<font face=verdana,arial size=1>
Mensagem: $idpage  <b>por:</b> $nomepage   <b>Email:</b> 
<a href=mailto:$emailpage>$emailpage</a><br><br>
$comentariopage</td></tr>
<hr width=\"100%\">
";
}

//Ahahaha, consegui fazer isso só no if e else, rs... :) Errado não tah neh... :)   

// aqui rola as duas operações, adição e subtração...
// Onde houve a maior mudança no script. Antes não estava exato, o internauta poderia clicar
// nos dois links que sempre ficavam ativos(anterior ou inicio), mesmo não existindo comentários no banco de dados.
// o que foi corrigido. Não há mensagem, então o link fica inativo, havendo msg, ele ativa.
if($n == 0){
$vurl = $n+5;
    $pega_n_linhas = mysql_query("SELECT * FROM comentarios");
   $conta_linhas = mysql_num_rows($pega_n_linhas);
    
   if($conta_linhas > $vurl){
   echo "<a href=\"?n=".($n+5)."\">«« anteriores</a> - início »»  <br>";
   }else{
   echo "«« anteriores - início »»  <br>";}
   
}else{
$vurl = $n+5;
    $pega_n_linhas = mysql_query("SELECT * FROM comentarios");
   $conta_linhas = mysql_num_rows($pega_n_linhas);

    if($conta_linhas > $vurl){
   echo "<a href=\"?n=".($n+5)."\">«« anteriores</a> - <a href=\"?n=".($n-5)."\"> início »»</a> <br>";
   }else{
   echo "«« anteriores - <a href=\"?n=".($n-5)."\"> início »»</a>
    <br>";}
}

mysql_close($conecta);
?>
</body>
</html>

Scripts recomendados

Cotação do Dólar em PHP + XML

Relogio Digital

IRCbot

Boleto On-Line

ShRBann


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts