Jump to content

Simples Livro De Visitas Em Php Mysql !


wooJeNto
 Share

Recommended Posts

Boas pessoal,

Como aqui é só gente bonita e muito simpática gostaria que me ajudassem a criar um livro de visitas numa pagina em branco em html só uma coisinha minima com Nome, Email, Mensagem (claro) e a Data em q foi postada a mensagem... e outra pagina pa mostrar as mensagens que já foram postadas... ! :)

já tenho a db feita e o formulário em html mas preciso de umas ajudas em PHP... :-..

:fnf:

Edited by wooJeNto
Link to comment
Share on other sites

Importa perguntar: Tens alojamento com suporte para MySQL e PHP?

Tenho WAMP5 com PHP e MySQL admin instalado, era isso que querias saber ?

:fnf:

Base de Dados

create table livrovisitas

(id_livrovisitas int(11) unsigned NOT NULL auto_increment,

nome varchar(150) NOT NULL,

email varchar(100) NOT NULL,

comentario text,

primary key (id_livrovisitas));

O nome da BD é guestbook

Formulário em HTML

<html>

<body>

<form action="http://localhost/visitas.php" method="POST">

<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse; border-width: 0" bordercolor="#111111" width="41%" id="AutoNumber1">

<tr>

<td width="44%" style="border-style: none; border-width: medium">

<font face="Verdana"><span style="font-size: 8pt">

Nome:</span></font></td>

<td width="56%" style="border-style: none; border-width: medium">

<font face="Verdana"><span style="font-size: 8pt">

<input type="text" name="nome" size="20"></span></font></td>

</tr>

<tr>

<td width="44%" style="border-style: none; border-width: medium">

<font face="Verdana"><span style="font-size: 8pt">

E-mail:

</span></font></td>

<td width="56%" style="border-style: none; border-width: medium">

<font face="Verdana"><span style="font-size: 8pt"><input type="text" name="email" size="20"></span></font></td>

</tr>

<tr>

<td width="44%" style="border-style: none; border-width: medium">

<font face="Verdana" style="font-size: 8pt

Mensagem:</font></td>

<td width="56%" style="border-style: none; border-width: medium">

<textarea rows="7" name="comentario" cols="24"></textarea></td>

</tr>

</table>

<p style="margin-left: -4"><font face="Verdana"><span style="font-size: 8pt">

<input type="submit" value="Enviar" > <input type="reset" value="Limpar"></span></font></p>

</form>

</body>

</html>

Script em PHP pa conectar a BD

<?php

$host = "localhost";

$user = "root";

$senha = "";

$dbname = "guestbook";

mysql_connect($host, $user, $senha) or die("Não foi possível conectar-se com o banco de dados");

mysql_select_db($dbname)or die("Não foi possível conectar-se com o banco de dados");

?>

Script das visitas

<?php

$nome = $_POST['nome'];

$email = $_POST['email'];

$comentario = $_POST['comentario'];

$hora = date("H:i");

$data = date("d/m/Y");

$datehora = "A mensagem foi postada em $data às $hora";

if (strlen($nome) < 4)

echo '<p align="center">Escreva seu nome!<BR><a href="java script:history.back(1);">voltar</a></p>';

elseif (strlen($email) <= 4)

echo '<p align="center">E-mail inválido!<BR><a href="java script:history.back(1);">voltar</a></p>';

elseif (strlen($comentario) <= 4)

echo '<p align="center">Sua mensagem deve conter mais de 4 caracteres!<BR><a href="java script:history.back(1);">voltar</a></p>';

else{

$host = "localhost";

$user = "root";

$senha = "";

$dbname = "guestbook";

$ligax=mysql_connect($host, $user, $senha);

mysql_select_db($dbname)or die("Não foi possível conectar-se com o banco de dados");

$insere = "Select * From livrovisitas";

echo $nome;

$result = mysqli_query($ligax,$insere);

echo '<p align=\"center\">Sua mensagem foi enviada com sucesso!</p>';

}

?>

Ao enviar dados no formulário aparece-me o seguinte erro:

Warning: mysqli_query() expects parameter 1 to be mysqli, resource given in C:\wamp\www\visitas.php on line 23

Sua mensagem foi enviada com sucesso!

JLDR acho q não consigo explicar melhor ! :-..

abraço

:fnf:

Link to comment
Share on other sites

Eu não costumo usar instruções mysqli, mas sim as tradicionais mysql. No entanto já deu para notar que não estás a registar nada na BD, uma vez que estás apenas a usar uma query de retorno de dados.

Uma vez que o erro refere a falta de um parâmetro mysqli, tudo leva a crer que se trata de um problema de sintaxe do código.

No entanto vou indicar aqui o que faria para resolver o teu desafio.

1 - criava a base de dados através do PhpMyAdmin e criava um user com password para proteger o acesso à BD;

2 - Criava o formulário em HTML, mas depois embebia-o numa instrução ECHO de php. É uma questão de gosto pessoal.

3 - Convém fazeres a despistagem de erros antes de guardar na BD. Podes fazer isso também em PHP, no sentido de verificar se os dados foram introduzidos.

4 - Só depois da verificação é que guardava na BD. Não tens essa questão resolvida no código que apresentaste.

Link to comment
Share on other sites

Penso que o problema esteja no resource link ("$ligax=mysql_connect($host, $user, $senha);") que estás a fornecer ao mysqli_query, estás a usar o mysqli_query, mas atrás usas o mysql_connect e o mysql_select_db, terás de uniformizar o código, ou mudas tudo para mysqli ou para mysql

Ah e claro só estás a ir buscar dados à tabela, não estás a modificar nada! Para inserir podias por ex fazer isto:

$insere="insert into `livrovisitas` (`nome`,`email`,`comentario`) values ('$nome', '$email', '$comentario')";

Mas convém antes prevenires-te contra sql injection ;)

just my 2 cents

Edited by kenshin
Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.