Guestbook Livrolivre

Publicado por Binho 23/01/2005

[ Hits: 7.786 ]

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

Script PHP simples que mostra IP e UserAgent do visitante, mesmo em alguns casos de proxy

Whois Buscando dominios nacionais e internacionais

Login em PHP 1

Contador de tempo de carregamento

Consulta SPC


  

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