DMBoss Posted February 24, 2009 at 10:00 PM Report #246505 Posted February 24, 2009 at 10:00 PM será que alguém me poderia ajudar a criar um livro de visitas em php? ficava muita agradecido DMBoss aka KingOfShadows
pedrotuga Posted February 24, 2009 at 10:07 PM Report #246507 Posted February 24, 2009 at 10:07 PM É das coisas mais simples que há. Ando há algum tempo para fazer um tutorial ou um screencast sobre isso... por motivos diversos ainda não o fiz. Se ler em inglês não for um obstáculo, encontras bastantes no google.
Hipnoted Posted February 24, 2009 at 10:09 PM Report #246509 Posted February 24, 2009 at 10:09 PM Não é preciso ires tão longe, cá no fórum existem pequenos tutoriais sobre isso, por exemplo: http://www.portugal-a-programar.pt/index.php?showtopic=1615 Existem mais, mas aí tens de procurar. 😄 "Nunca discutas com um idiota. Eles arrastam-te até ao seu nível e depois ganham-te em experiência"
DMBoss Posted February 24, 2009 at 10:24 PM Author Report #246514 Posted February 24, 2009 at 10:24 PM utilizei o codigo do joninho so kue n ta a dar erro podem ver como ta www.gjalfornelos.pt.vu se me conseguirem ajudar agardecia + uma vez DMBoss aka KingOfShadows
DMBoss Posted February 24, 2009 at 10:48 PM Author Report #246520 Posted February 24, 2009 at 10:48 PM já consegui descobrir o problema só que ainda n sei como o resolver já criei a base de dados só que n consigo criar as tabelas alguém me pode dizer como faço isso? DMBoss aka KingOfShadows
pedrotuga Posted February 24, 2009 at 11:11 PM Report #246524 Posted February 24, 2009 at 11:11 PM Usas um programa de administração de bases de dados e clicas onde diz "criar tabela nova" ou qualquer coisa parecida. Tens é que ter permissões para isso Estás a correr isso onde? No teu computador? Num servidor remoto? Não tens acesso a uma coisa tipo phpmyadmin?
DMBoss Posted February 24, 2009 at 11:16 PM Author Report #246527 Posted February 24, 2009 at 11:16 PM eu consigo aceder ao phpmyadmin só que depois na consigo criar as tabelas porque nunca trabalhei com DB's as tabelas que o joninho utilizou foram estas Requesitos: Saltar Logo para o DEFAULT nos cases, porque é o primeiro passo que a página faz, por isso é mais facil de esplicar assim MySql: Tabela Guestbook Campos: id tipo inteiro limite 255 (por exemplo) de tipo varchar limite 50 (aqui vai ser o remetente da mensagem a ser postada) mensagem tipo text (aqui vai ser armazenada a mensagem) date tipo varchar limite 50 e como o código que eu estou a utilizar e do dele terão de ser estas as tabelas que tenho de criar só n sei como as criar DMBoss aka KingOfShadows
djthyrax Posted February 25, 2009 at 01:55 AM Report #246539 Posted February 25, 2009 at 01:55 AM No phpMyAdmin clicas em criar tabela e escolhes as definições como estão no quote que fizeste, não tem nada de complicado. 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!
DMBoss Posted February 25, 2009 at 10:27 PM Author Report #246774 Posted February 25, 2009 at 10:27 PM Imagem ta aqui um screen do phpmyadmin se alguém me poder ajudar a criar estas tabelas Requesitos: Saltar Logo para o DEFAULT nos cases, porque é o primeiro passo que a página faz, por isso é mais facil de esplicar assim MySql: Tabela Guestbook Campos: id tipo inteiro limite 255 (por exemplo) de tipo varchar limite 50 (aqui vai ser o remetente da mensagem a ser postada) mensagem tipo text (aqui vai ser armazenada a mensagem) date tipo varchar limite 50 DMBoss aka KingOfShadows
djthyrax Posted February 25, 2009 at 11:10 PM Report #246798 Posted February 25, 2009 at 11:10 PM Metes no nome Guestbook, e 4 no número de fields. Depois aparece um popup e metes essas configs. 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!
DMBoss Posted February 25, 2009 at 11:16 PM Author Report #246801 Posted February 25, 2009 at 11:16 PM CREATE TABLE `a8373046_gja`.`Guestbook` ( `id` INT( 225 ) NOT NULL , `de` VARCHAR( 50 ) NOT NULL , `mensagem` TEXT NOT NULL , `date` VARCHAR( 50 ) NOT NULL ) ENGINE = MYISAM supostamente a tabela ja esta criada DMBoss aka KingOfShadows
DMBoss Posted February 25, 2009 at 11:45 PM Author Report #246810 Posted February 25, 2009 at 11:45 PM ja consegui criar a tabela e todo o necessario so falta agora conseguir postar as mensagens podem ver como ficou www.gjalfornelos.pt.vu DMBoss aka KingOfShadows
DMBoss Posted March 7, 2009 at 03:12 PM Author Report #248934 Posted March 7, 2009 at 03:12 PM alguem me pode dar uma dica e que o problema ainda se mantem DMBoss aka KingOfShadows
scorch Posted March 7, 2009 at 03:19 PM Report #248939 Posted March 7, 2009 at 03:19 PM Que erro é que ele te dá? Se só soubermos que dá erro e mais nada não podemos ajudar muito 😉 PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.
DMBoss Posted March 7, 2009 at 03:41 PM Author Report #248953 Posted March 7, 2009 at 03:41 PM as mensagem na são postadas como se pode ver na imagem http://img17.imageshack.us/img17/1122/semttulokek.jpg DMBoss aka KingOfShadows
scorch Posted March 7, 2009 at 03:43 PM Report #248955 Posted March 7, 2009 at 03:43 PM Sim, eu experimentei, mas sem sabermos o código de inserir os comentários, não podemos ajudar. Isso deve ter a haver com o código SQL, mostra o que tens para fazer as querys e verifica se os nomes das tabelas correspondem. PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.
DMBoss Posted March 7, 2009 at 03:50 PM Author Report #248956 Posted March 7, 2009 at 03:50 PM o código e este fui o joninho, que o postou <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Mensagens - GuestBook</title> <style type="text/css"> <!-- body { background-color: #156564; background-image: url(lol9.jpg); } .style2 { color: #0099FF; font-size: 18px; font-family: Verdana, Arial, Helvetica, sans-serif; } .style1{ color:#000000; font-size:18px; font-family:Geneva, Arial, Helvetica, sans-serif } --> </style><body> </head> <table width="499" border="1" bordercolor="#CC3300" cellpadding="0" cellspacing="0" align="center"> <!--DWLayoutTable--> <tr> <td width="495" height="185" valign="top" bgcolor="#CCCCCC"> <?php /* Ligacao a base de dados, substituir: SERVER: pelo vosso servidor USER: pelo vosso user da base de dados PASS: pela vossa password da base de dados BASE_DE_DADOS: pela vossa Base de dados */ $dbh=mysql_connect ("SERVER", "USER", "PASS") or die ('Não é possivel aceder à base de dados porque: ' . mysql_error()); mysql_select_db ("BASE_DE_DADOS"); ?> <?php // aqui a variavel $var vai receber um valor introduzido no endereço por exemplo index.php?action=lol a variavel $var vai ficar com o conteudo "lol", que é para depois usar os cases em vês de 2 páginas, como é cases e a variavel var logo no principio tem o conteudo "" e nao tenho nenhuma case para esse conteudo irá ser redireccionado para o default. $var=$_GET["action"]; //abrir os cases switch($var){ //case Enviar case "enviar": //bem vindo ao case enviar XD lol aqui é onde vai receber o conteudo do formulario para enviar para a base de dados... //a variavel date vai ficar com a data de hoje, e esta a função. $date = date("j/n/Y"); //a variavel nome vai receber o conteudo do formulario onde voce inseriu o nome.. $nome = $_POST["nome"]; //a variavel mensagem vai receber o conteudo do formulario onde voce interiu a mensagem, o nl2br é para fazer paragrafos ao longo do texto, respectivamente pelos paragrafos k meter.. $mensagem = nl2br($_POST["mensagem"]); //query para inserir o conteudo das variaveis na base de dados $query= "INSERT INTO `Guestbook` (`de` , `mensagem`, `date` ) VALUES ('$nome', '$mensagem',''$date')"; //se a query for bem sucedida entao apresenta o texto: "mensagem enviada" e uma hiperligação para voltar ao index.php if(mysql_query($query)){ echo "mensagem enviada!!!<br>"; echo '<a href=index.php>Voltar</a>'; //senao apresenta o texto: "mensagem nao foi enviada ocorreu um erro..." e uma hiperligacao para voltar ao index.php }else{ echo "mensagem nao foi enviada ocorreu um erro...<br>"; echo '<a href=index.php>Voltar</a>'; } //fexar o case ESTA ACABADO O SCRIPT DO GUESTBOOK break; //entao, o primeiro passo que a pagina faz é entrar aqui. e fazer o que o script manda... default: //aqui fazemos uma query para bd, que vai seleccionar o conteudo da tabela Guestbook $query="SELECT * FROM `Guestbook` WHERE 1"; //fazemos a query para dentro da variavel $nome, que vai ficar uma array. os nomes das variaveis podem ser alterados por si, desde que use direito e mude em todo lado.. $nome=mysql_query($query); /* agora fazemos um ciclo para imprimir no ecrã tudo o que tiver a array $nome tiver, nao sei bem explicar o ciclo XD mas sei que é para isso. ou seja imprime o que tiver na tabela, menos o id, se quiser tb pode imprimir o id, basta meter um echo $titulo[1], dependendo da posição desse campo...*/ while($titulo = mysql_fetch_row($nome)){ //imprime o remetente da mensagem... echo '<br><span class="style2">De: </span>'.'<span class="style1">'.$titulo[1].'</span>'; //imprime a data do local.. echo '<br><span class="style2">Data: </span>'.'<span class="style1">'.$titulo[4]."</span><br>"; //e por fim imprime a mensagem echo '<br><span class="style2">Mensagem: </span><br>'.'<span class="style1">'.$titulo[2].'</span><br>'; //separador das mensagens... fica mais bonito, assim pode separar umas das outras.. echo "=================================================================================="; // fexar o ciclo } //aqui fica o formulario para inserir na base de dados ?> //action e para onde o form vai mandar os dados, neste caso vai mandar para a nossa case enviar, porque vai meter o conteudo enviar na variavel e entao vai entrar na case "enviar" precebido? <form action="index.php?action=enviar" method="post"> Nome: <br />//aqui e a insercao do nome <input type="text" name="nome"/> <br /> Mensagem: <br /> // agora a da mensagem <textarea name="mensagem" cols = "70" rows="8"></textarea><br /> //estes sao os botoes submit para submeter o formulario e o reset para limpar tudo <input type="submit" value="Enviar"/> <input type="reset" value="Limpar tudo"/> //fexar o formulario </form> <? //e fexar o case default, agora faz de conta que uma pessoa mete texto no formulario, entao o script vai saltar para o case "enviar". dirija-se agora ao case"enviar" break; } ?></td> </tr> </table> </body> </html> <?php //fexa a ligacao a base de dados mysql_close($dbh); ?> DMBoss aka KingOfShadows
scorch Posted March 7, 2009 at 03:54 PM Report #248958 Posted March 7, 2009 at 03:54 PM Tenta isto. <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Mensagens - GuestBook</title> <style type="text/css"> <!-- body { background-color: #156564; background-image: url(lol9.jpg); } .style2 { color: #0099FF; font-size: 18px; font-family: Verdana, Arial, Helvetica, sans-serif; } .style1{ color:#000000; font-size:18px; font-family:Geneva, Arial, Helvetica, sans-serif } --> </style><body> </head> <table width="499" border="1" bordercolor="#CC3300" cellpadding="0" cellspacing="0" align="center"> <!--DWLayoutTable--> <tr> <td width="495" height="185" valign="top" bgcolor="#CCCCCC"> <?php /* Ligacao a base de dados, substituir: SERVER: pelo vosso servidor USER: pelo vosso user da base de dados PASS: pela vossa password da base de dados BASE_DE_DADOS: pela vossa Base de dados */ $dbh=mysql_connect ("SERVER", "USER", "PASS") or die ('Não é possivel aceder à base de dados porque: ' . mysql_error()); mysql_select_db ("BASE_DE_DADOS"); ?> <?php // aqui a variavel $var vai receber um valor introduzido no endereço por exemplo index.php?action=lol a variavel $var vai ficar com o conteudo "lol", que é para depois usar os cases em vês de 2 páginas, como é cases e a variavel var logo no principio tem o conteudo "" e nao tenho nenhuma case para esse conteudo irá ser redireccionado para o default. $var=$_GET["action"]; //abrir os cases switch($var){ //case Enviar case "enviar": //bem vindo ao case enviar XD lol aqui é onde vai receber o conteudo do formulario para enviar para a base de dados... //a variavel date vai ficar com a data de hoje, e esta a função. $date = date("j/n/Y"); //a variavel nome vai receber o conteudo do formulario onde voce inseriu o nome.. $nome = $_POST["nome"]; //a variavel mensagem vai receber o conteudo do formulario onde voce interiu a mensagem, o nl2br é para fazer paragrafos ao longo do texto, respectivamente pelos paragrafos k meter.. $mensagem = nl2br($_POST["mensagem"]); //query para inserir o conteudo das variaveis na base de dados $query= "INSERT INTO `Guestbook` (`de` , `mensagem`, `date` ) VALUES (\''$nome'\', \''$mensagem'.\, \''.$date.'\')"; //se a query for bem sucedida entao apresenta o texto: "mensagem enviada" e uma hiperligação para voltar ao index.php if(mysql_query($query)){ echo "mensagem enviada!!!<br>"; echo '<a href=index.php>Voltar</a>'; //senao apresenta o texto: "mensagem nao foi enviada ocorreu um erro..." e uma hiperligacao para voltar ao index.php }else{ echo "mensagem nao foi enviada ocorreu um erro...<br>"; echo '<a href=index.php>Voltar</a>'; } //fexar o case ESTA ACABADO O SCRIPT DO GUESTBOOK break; //entao, o primeiro passo que a pagina faz é entrar aqui. e fazer o que o script manda... default: //aqui fazemos uma query para bd, que vai seleccionar o conteudo da tabela Guestbook $query="SELECT * FROM `Guestbook` WHERE 1"; //fazemos a query para dentro da variavel $nome, que vai ficar uma array. os nomes das variaveis podem ser alterados por si, desde que use direito e mude em todo lado.. $nome=mysql_query($query); /* agora fazemos um ciclo para imprimir no ecrã tudo o que tiver a array $nome tiver, nao sei bem explicar o ciclo XD mas sei que é para isso. ou seja imprime o que tiver na tabela, menos o id, se quiser tb pode imprimir o id, basta meter um echo $titulo[1], dependendo da posição desse campo...*/ while($titulo = mysql_fetch_row($nome)){ //imprime o remetente da mensagem... echo '<br><span class="style2">De: </span>'.'<span class="style1">'.$titulo[1].'</span>'; //imprime a data do local.. echo '<br><span class="style2">Data: </span>'.'<span class="style1">'.$titulo[4]."</span><br>"; //e por fim imprime a mensagem echo '<br><span class="style2">Mensagem: </span><br>'.'<span class="style1">'.$titulo[2].'</span><br>'; //separador das mensagens... fica mais bonito, assim pode separar umas das outras.. echo "=================================================================================="; // fexar o ciclo } //aqui fica o formulario para inserir na base de dados ?> //action e para onde o form vai mandar os dados, neste caso vai mandar para a nossa case enviar, porque vai meter o conteudo enviar na variavel e entao vai entrar na case "enviar" precebido? <form action="index.php?action=enviar" method="post"> Nome: <br />//aqui e a insercao do nome <input type="text" name="nome"/> <br /> Mensagem: <br /> // agora a da mensagem <textarea name="mensagem" cols = "70" rows="8"></textarea><br /> //estes sao os botoes submit para submeter o formulario e o reset para limpar tudo <input type="submit" value="Enviar"/> <input type="reset" value="Limpar tudo"/> //fexar o formulario </form> <? //e fexar o case default, agora faz de conta que uma pessoa mete texto no formulario, entao o script vai saltar para o case "enviar". dirija-se agora ao case"enviar" break; } ?></td> </tr> </table> </body> </html> <?php //fexa a ligacao a base de dados mysql_close($dbh); ?> PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.
softklin Posted March 7, 2009 at 03:55 PM Report #248959 Posted March 7, 2009 at 03:55 PM Tenta a sugestão do scorch, e se não der, faz assim: Nesta parte }else{ echo "mensagem nao foi enviada ocorreu um erro...<br>"; echo '<a href=index.php>Voltar</a>'; } altera para: }else{ echo "mensagem nao foi enviada ocorreu um erro:".mysql_error()."<br>"; echo '<a href=index.php>Voltar</a>'; } e vamos ficar a saber se é erro da base de dados, que quase certo que é. Nick antigo: softclean | Tens um projeto? | Wiki P@P Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.
DMBoss Posted March 7, 2009 at 04:06 PM Author Report #248964 Posted March 7, 2009 at 04:06 PM como tinhas dito softclean o erro e na DB Mensagem não enviada, ocorreu um erroYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '7/3/2009')' at line 1 DMBoss aka KingOfShadows
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