karva Posted July 10, 2006 at 04:57 PM Report #37372 Posted July 10, 2006 at 04:57 PM Ja vi muitos guestbooks, por isso decidi fazer um meu. Aqui vai: <? $connection=mysql_connect("localhost", "user", "pass") or die ("Oops, nao foi possivel ligar a base de dados..."); mysql_select_db("db",$connection); $name = $_POST["txt_name"]; $len = strlen($name); // apenas escrever para a base de dados, se há um nome if ($len > 0) { $email = $_POST["txt_email"]; $com = $_POST["txt_com"]; $date = time(); $ip = getenv("REMOTE_ADDR"); $query = "INSERT INTO livro (autoID, nome, email, com, data_auto, ip) VALUES (NULL, '$name', '$email', '$com', '$date', '$ip')"; mysql_query($query,$connection) or die (mysql_error()); } ?> <html> <head> <title>Livro de Visitas</title> </head> <body> <center> <form action="<? echo $_SERVER['PHP_SELF']; ?>" method="post"> <font face="Arial, Helvetica, sans-serif" size="1"> Nome: <input type="text" name="txt_name"> Email: <input type="text" name="txt_email"><br><br> Comentário:<br> <textarea style="width: 75%" rows="10" name="txt_com"></textarea><br> <input type="submit" value="Enviar"> </font> </form> <br> <br> <table bgcolor="#AAAAAA" border="0" width="75%" cellspacing="1" cellpadding="2"> <? $connection=mysql_connect("localhost", "user", "pass") or die ("Oops, nao foi possivel ligar a base de dados...");//alterar dados da ligacao mysql_select_db("db",$connection); $query = "SELECT * FROM livro ORDER BY data_auto"; $result = mysql_query($query, $connection); for ($i = 0; $i < mysql_num_rows($result); $i++) { $name = mysql_result($result, $i, "nome"); $email = mysql_result($result, $i, "email"); $email_len = strlen($email); $com = mysql_result($result, $i, "com"); $show_com = nl2br($com); $date_auto = mysql_result($result, $i, "data_auto"); $show_date = date ("H:i:s m/d/Y", $date_auto); if ($i % 2) { $bg_color="#EEEEEE"; } else { $bg_color="#E0E0E0"; } echo ' <tr> <td width="50%" bgcolor="'.$bg_color.'"> <font face="arial" size="2">'; if ($email_len >0) { echo '<b>Nome:</b> <a href="mailto:'.$email.'">'.$name.'</a>'; } else { echo '<b>Nome:</b> '.$name; } echo ' <br> <b>Comentário:</b> '.$show_com.' </font> </td> <td width="1%" valign="top" nowrap bgcolor="'.$bg_color.'"> <font face="arial" size="2"> <b>Data: </b> '.$show_date.' </font> </td> </tr> '; } ?> </table> </center> </body> </html> Codigo sql CREATE TABLE livro ( autoID int(10) unsigned NOT NULL auto_increment, nome varchar(64) collate latin1_general_ci NOT NULL, email varchar(64) collate latin1_general_ci NOT NULL, com text collate latin1_general_ci NOT NULL, data_auto int(10) unsigned NOT NULL, ip text collate latin1_general_ci NOT NULL, PRIMARY KEY (autoID) ); Proud LEIC-A@IST student!
Drone Posted July 11, 2006 at 12:47 PM Report #37505 Posted July 11, 2006 at 12:47 PM Não é necessario estares a fazer mais que uma ligação à base de dados 😉 em vez de $name = $_POST["txt_name"]; $len = strlen($name); // apenas escrever para a base de dados, se há um nome if ($len > 0) { podes usar: // apenas escrever para a base de dados, se há um nome if (!empty(trim($_POST['txt_name']))) {
pedrotuga Posted July 11, 2006 at 01:02 PM Report #37512 Posted July 11, 2006 at 01:02 PM so mudava outra coisita.... no campo da data chapava-lhe com um timestamp por questoes de simplicidade
Drone Posted July 11, 2006 at 01:16 PM Report #37515 Posted July 11, 2006 at 01:16 PM yup me too, utilizo sempre timestamp para as datas nos meus projectos, so na data de nascimento é que nao utilizo porque o timestamp começa a partir de 1 d janeiro de 1971 :S lol
karva Posted July 11, 2006 at 06:09 PM Author Report #37583 Posted July 11, 2006 at 06:09 PM pa, so nao uso a timestamp, pk e mais facil de guardar na base de dados, pk assim fika so um numero Proud LEIC-A@IST student!
Romanovs Posted March 25, 2007 at 02:43 PM Report #90012 Posted March 25, 2007 at 02:43 PM Desculpa usar o teu tópico para meter o meu mas não gosto de ver fóruns cheios de tópicos com assuntos repetidos. Este é um Guestbook que fiz com base num ficheiro .txt que fica mais levezinho. Indica nome, data automática da mensagem (em inglês 😄 ) e mail bem como a mensagem em si. Tudo numa página (mais o ficheiro que pode ser editado livremente apenas através do .txt) Resultado aqui. <html> <head> <title>Livro de Visitas</title> </head> <body> <!--Livro de Visitas tendo por base um ficheiro .txt Versao 1.5 Adiante da Versao 1.4-> Formatacao de texto diferente para a parte de quem colocou a mensagem. Por: Joao Romao a.k.a. Romanovs--> <?php if ($nome || $email) { $ficheiro=fopen("livro.txt","a"); /*Abre o ficheiro .txt*/ $data = date("j \d\e F \d\e Y, G:i"); /*Data em inglês "dia" de "mes" de "ano", "horas(24)":"Minutos" (Formato do Horário e de Inverno)*/ fputs($ficheiro,"\n"); fputs($ficheiro,"$nome|$email|$texto|$data"); /*Mete os dados no ficheiro.txt separados por uma linha vertical "|"*/ fclose($ficheiro); /*Fecha o ficheiro .txt*/ print ("Mensagem adicionada com sucesso."); /*Mensagem de sucesso*/ print ("<a href=\"livro.php\"><p>Voltar</a>"); } else { ?> <h2>Livro de Visitas</h2> <br>Por favor preenche todos os dados pedidos <form method="POST" action="<?php $PATH_INFO ?>"> <table> <tr><td><p>Nome: </td><td><input type="text" name="nome" size="20"></p></td></tr> <tr><td><p>E-mail: </td><td><input type="text" name="email" size="20"></p></td></tr> <tr><td valign="top">Mensagem: </td><td><textarea rows="6" name="texto" cols="32"><textarea></td></tr> <tr><td><p><input type="submit" value="Enviar" name="adicionar"> </p></td></tr> </table></form> <?php } ?> <!--A partir daqui serve para ver os registos existentes--> <?php if (file_exists("livro.txt")) { /*verifica se o ficheiro .txt existe*/ $ficheiro= fopen("livro.txt", "r"); /*abre o ficheiro .txt*/ print "<table border=1>"; print "<tr> <td width=\"100%\"><p align=\"center\"> <b>Mensagens Existentes</b></td></tr>"; while(!feof($ficheiro)) { $linha= fgets($ficheiro, 1024); $array= explode ("|", $linha); /*coloca os dados que estão divididos pela linha vertical "|" na tabela*/ $nome= $array[0]; $email= $array[1]; $texto= $array[2]; $data= $array[3]; print "<tr> <td width=\100%\"><p align='left' style=\"font-size:12px;\">Colocado por <a href=\"mailto:$email?subject=O meu site\">$nome</a> em $data</font></td></tr>"; /*Quem colocou com link para enviar mail e a data em que o texto foi submetido*/ print "<td width=\"100%\"><p align=\"left\">$texto</td></tr>"; } /*A mensagem propriamente dita*/ print "</table>"; fclose($ficheiro); } else { print "Não é possível ver as mensagens existentes."; /*mensagem de erro*/ } ?> <!--Nota: Depois de apagarem o ficheiro .txt para limpar o livro apaguem a primeira linha que aparece automaticamente--> </body> </html> O ficheiro .txt fica assim: João Romão|juaorumao@hotmail.com|Teste feito às treze trinta e quatro|25 de March de 2007, 12:34 Por favor digam o que acham (meu primeiro ficheiro php 😄😉 Eu depois vou actualizando os melhoramentos
djthyrax Posted March 25, 2007 at 06:10 PM Report #90028 Posted March 25, 2007 at 06:10 PM Romanovs, já que estás a usar .txt, explora as funções serialize() e unserialize() 😉 Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!
kingless Posted March 25, 2007 at 07:27 PM Report #90037 Posted March 25, 2007 at 07:27 PM Vou aproveitar este tópico para mostrar um exemplo que como utilizar o PDB.. 😉 Para quem não sabe o que é o PDB http://www.kingless.net/index.php?fileinfo=cGRi
kingless Posted March 25, 2007 at 08:16 PM Report #90043 Posted March 25, 2007 at 08:16 PM @Romanovs Alterei o teu script para satisfazer as minhas necessidades e para melhorar... hope you don't mind 😉 Fica aqui um exemplo de como utilizar o PDB para armazenar dados.. Demo: http://www.kingless.net/guestbook/index.php Download: http://www.kingless.net/download.php?filename=guestbook.tar Source Code: http://www.kingless.net/download.php?filename=guestbook.php;source <html> <head> <title>Livro de Visitas</title> </head> <body> <?php //inclui o pdb include_once( 'pdb.php' ); //Iniciliza o PDB $db = new pdb_init( 'kingless', 'password', 'guestbook' ); //Verifica se a database "guestbook" já existe if(!$db->db_exists( 'guestbook' )) { //Cria uma base de dados com o nome guestbook $db->create_db( 'guestbook' ); //Cria uma tabela com o nome livro e com 4 colunas (nome, email, texto, data ); $db->create_table( 'livro', 'nome', 'email', 'msg', 'data' ); } if(isset( $_POST['enviar'] ) AND !empty( $_POST['msg'] ) AND !empty( $_POST['nome'] )) { $nome = $_POST['nome']; $email = empty( $_POST['email'] ) ? '' : $_POST['email']; $data = date("j \d\e F \d\e Y, G:i"); $msg = nl2br( $_POST['msg'] ); //Insere os dados na tabela livro $query = array( 'nome' => $nome, 'email' => $email, 'data' => $data, 'msg' => $msg ); if($db->insert( 'livro', $query )) { echo 'Mensagem adicionada com sucesso'; } else { echo 'Não foi possivel enviar a mensagem'; } ?> <a href="index.php"><p>Voltar</a> <? return; } ?> <h2>Livro de Visitas</h2> <form method="post" action="<?php echo basename( __FILE__ );?>"> <table> <tr><td><p>Nome: </td><td><input type="text" name="nome" size="20"></p></td></tr> <tr><td><p>E-mail: </td><td><input type="text" name="email" size="20"></p></td></tr> <tr><td valign="top">Mensagem: </td><td><textarea rows="6" name="msg" cols="32"></textarea></td></tr> <tr><td align="right" colspan="2"><p><input type="submit" value="enviar" name="enviar"> </p></td></tr> </table></form> <?php //Seleciona os dados que estão na tabela if($row = $db->select( 'nome,data,msg,email', 'livro' )) { echo '<table border="1">'; echo '<tr> <td width="100%"><p align="center"><b>Mensagens no Livro</b></td></tr>'; // $db->values tem o numero de valores retornados pelo $db->select (print_r( $row )) for($x = 0; $x < $db->values; $x++) { $nome = $row['nome'][$x]; $data = $row['data'][$x]; $msg = $row['msg'][$x]; $email = empty( $row['email'][$x] ) ? '' : $row['email'][$x]; echo '<tr> <td width="100%"><p align="left">Enviado por <a href="mailto:'. $email .'">'. $nome .'</a> em '. $data .'</font></td></tr>'; echo '<td width="100%"><p align="left">'. $msg .'</td></tr>'; } echo '</table>'; } ?> </body> </html> PDB - PHP DATABASE
Romanovs Posted March 25, 2007 at 08:22 PM Report #90044 Posted March 25, 2007 at 08:22 PM Um dia destes hei-de me lembrar de estudar melhor as possibilidades de bases de dados. Por enquanto voume ficar pelos .txt e aproveitar ao máximo 😉 Já agora como altero o tamanho das letras num comando php?
kingless Posted March 25, 2007 at 08:31 PM Report #90045 Posted March 25, 2007 at 08:31 PM Um dia destes hei-de me lembrar de estudar melhor as possibilidades de bases de dados. Por enquanto voume ficar pelos .txt e aproveitar ao máximo 😉 O exemplo que dei acima é de um gestor que eu desenvolvi que utiliza ficheiros .txt para armazenar os dados... é mais fácil utilizar este gestor do que MySQL etc... Já agora como altero o tamanho das letras num comando php? Não dá...
Romanovs Posted March 25, 2007 at 08:45 PM Report #90050 Posted March 25, 2007 at 08:45 PM nao dá??? entao e aqui nos foruns o rank, numero de mensagens e isso aparece mais pequeno que no resto
kingless Posted March 25, 2007 at 08:48 PM Report #90051 Posted March 25, 2007 at 08:48 PM nao dá??? entao e aqui nos foruns o rank, numero de mensagens e isso aparece mais pequeno que no resto Isso é feito com HTML...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now