Guestbook Livrolivre
Publicado por Binho 23/01/2005
[ Hits: 8.118 ]
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>
SISTEMA COMPLETO DE NOTÍCIAS !!!
Encontrando um nome de domínio livre.
Enviando e-mai direto do site em php.
Nenhum comentário foi encontrado.
Cinnamon seria a aposta acertada frente às outras interfaces gráficas mais populares?
KDE Plasma - porque pode ser a melhor opção de interface gráfica
Gentoo: detectando impressoras de rede e como fixar uma impressora por IP
Como o GNOME conseguiu o feito de ser preterido por outras interfaces gráficas
Por que sua empresa precisa de uma PKI (e como automatizar EMISSÕES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Vou destruir sua infância:) (8)
Interface gráfica com problema (2)
Instalar Linux em notebook Sony Vaio VPCEG13EB (13)









