Guestbook Livrolivre
Publicado por Binho 23/01/2005
[ Hits: 8.002 ]
Livro de visitas bem simples, com paginação simples.
Fácil, para iniciantes.
<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>
RandomBanner - Classe para mostrar banner aleatório em imagem ou flash
Paginação com qualidade em PHP
Nenhum comentário foi encontrado.
Desktop Linux ganha fôlego enquanto distros refinam experiência e segurança
Wayland em alta, IA em debate e novos ventos para distros e devices
Qt 6.10 e Python 3.14 puxam o ritmo do software livre nesta quarta
Atualizações de Apps, Desktop e Kernel agitam o ecossistema Linux nesta terça-feira
Como mudar o nome de dispositivos Bluetooth via linha de comando
Adicionando o repositório backports no Debian 13 Trixie
Erro ao fazer remaster usando Penguin eggs (2)
Primeiras impressões do Debian 13 (25)
Meu Amigo não consegue entrar em meu mundo, via tailscale, hamachi e z... (1)