Guestbook Livrolivre
Publicado por Binho 23/01/2005
[ Hits: 7.823 ]
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>
SERVER PARA EDITAR GRATUITAMENTE MU-ONLINE
Cotação do Dólar (segunda edição)
guarda num arquivo txt o host, ip, data e hora de acesso do visitante
Nenhum comentário foi encontrado.
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Falta pacotes de suporte ao sistema de arquivos (Gerenciador de discos... (2)
Enzo quer programar mas não faz código pra não bugar (12)
Erro de Montagem SSD Nvme (12)
WebScrapping através de screenshot devido a bloqueios de Shadow DOM (1)