Novidades100 - Dicas de Internet e Computador

Construir Formulários Dinamicos com Php e MySql

Exibir Formulários Dinâmicos no Seu Site Utilizando Php e MySql

Agora implementado com algumas alterações profundas. Sabendo que o usuário logo que envia seu comentário é imediatamente exibido no seu site, inserimos alguns filtros de palavras que não seriam convenientes de serem exibidas, além de a não aceitação de links, que sabemos muitos por aí não perdem uma chance de fazê-lo. Melhoramos também a funcionalidade do formulário dinâmico. Com as alteração serão enviados Email's tanto para o usuário que comentou, quanto para o administrador do Site para ele analise e decida-se por excluir ou manter o comentário no Banco de Dados. Os Email's terão uma headers completa, com todos os campos necessário para um bom desempenho. Click no botão abaixo e veja o formulário em funcionamento.

Primeiramente vamos a criação da tabela Contato no seu Banco de Dados.
Copie o código abaixo e salve-o em Bloco de Notas como criar_tabela.php. Salve-o em qualquer diretório do seu site, depois é só executá-lo no navegador, digitando seu url, e estará criada sua tabela.
Atenção: Faça as alterações necessárias, inserindo seus dados corretos do seu usuário do Bancos de Dados.

<?
/* Atenção: Para que funcione corretamente o comando, você deve alterar a linha abaixo, colocando o host do seu servidor mysql, o seu usuário, sua senha e por último o banco no qual vai criar a tabela contato */
$conexao = mysql_connect ("host", "usuario", "senha");
$banco = mysql_select_db ("banco");
$sql = "CREATE TABLE IF NOT EXISTS contato (
id int(11) NOT NULL AUTO_INCREMENT,
name char(30) NOT NULL,
email char(30) NOT NULL,
DATA date NOT NULL,
mensagem text NOT NULL,
PRIMARY KEY (id))";
$result = mysql_query($sql, $conexao);
if(!$result)
die("Falha ao Criar Tabela: " . mysql_error());
else
echo "Tabela Criada com Sucesso!";
?>

Formulário

A segunda parte é bem mais simples. Copie o código a seguir e salve em alguma pasta dentro da raíz do site (Para que não haja nenhum contratempo, crie uma pasta na raíz do site e denomine-a de formulários. Salve o arquivo como formulário.html.

<html>
<head>
<title>FORMULÁRIO </title>
</head>
<body>
<div style="width: 40%; background: #6cf; text-align:center;border:2px solid #000;">
<form name="form" method="POST" action="php/resposta.php">
<b> Nome: </b>
<br>
<input type="text" name="name" size=" 40">
<br>
<b> email: Não Será Exibido</b>
<br>
<input type="text" name="email" size="40">
<br>
<b> mensagem: </b>
<br>
<textarea name="mensagem" cols="30" rows="5"> </textarea>
<br>
<input type="submit" value=" enviar">
</form>
</div>
</body>
</html>

Resposta Php

Agora a última etapa da criação de formulários dinâmicos.
Copie o script a seguir e salve-o como resposta.php. É bom que você crie uma outra pasta, esta dentro da pasta formulários denominada de php. Salve o arquivo dentro desta pasta.

<html>
<head><title>Formulário </title>
<meta name="robots" content="noindex" >
<style type="text/css">
body{width:98%;height:auto;padding:1%; margin:0px;overflow:auto;}
input{border:1px solid #aaa;}
textarea{border:1px solid #aaa;}
div.exibir_teste{width:98%;height:auto; text-align:left;font-family:arial;}
h2{color:009;text-transform:uppercase;font-family:arial;}
b{color:#777;}
</style>
</head>
<body>
<?
/* Este trecho abaixo está a requisição da Tabela criada no MySql no Banco de Dados específico (Altere todos os campos em verde para seus próprios dados no Banco) */
$session=session_id();
$host="URL_DO_SEU_BANCO_DE_DADOS";
$username="SEU_USUÁRIO_NO_BANCO";
$password="SUA_SENHA_NO_BANCO";
$db_name="NOME_DO_SEU_BANCO_DE_DADOS";
/* O campo abaixo não precisa ser alterado, pois este é o nome da tabela criada */
$tbl_name="contato";
mysql_connect("$host", "$username", "$password")or die("Não foi possível a conexão com o servidor");
mysql_select_db("$db_name")or die("Não foi possível conectar-se ao banco de dados");
?>
/* No trecho abaixo está o formulário html */
<div class="exibir_teste">
<form name="form" method="POST" action="">
<b> Nome:</b>
<br>
<input type="text" name="name" size="40" maxlength="20">
<br>
<b> Email: (Não Será Exibido) </b>
<br>
<input type="text" name="email" size="40" maxlength="40">
<br>
<b> Mensagem:</b>
<br>
<textarea name="mensagem" cols="30" rows="4" maxlength="60"></textarea>
<br>
<input type="submit" value="enviar">
</form>
</div>
<?
/* No trecho abaixo estão todas as variáveis do formulário e outras que serão utilizadas aqui */
$ip = $_SERVER['REMOTE_ADDR'];
$palavras = "/(palavrão1| palavrão2|palavrão3|ddd|eee| fff|ccc)/i";
$links = "/(http:|a href=) /i";
$title = "Fazer um Comentario";
$name = $_POST ['name'];
$email = $_POST ['email'];
$mensagem = $_POST['mensagem'];
$data = date ('Y-m-d');
/* O trecho abaixo são as instruções da 'headers' para que todos os campos sejam exibidos, Ex: Email de:, Email para: Reply-to:, Priority, etc */
$headers = implode ("\n",array ("From: $email<seu_site@seu_site.com>"," Reply-To: $email","Subject:$titulo"," Return-Path:$mail_admin","MIME-Version: 1.0","X-Priority:3","Content-Type:text/ html;charset=iso-8859-1"));
/*As linhas abaixo força o usuário a preencher todos os campos */
if ($name == null) {
echo "<b>Você precisa inserir seu nome</b>.";
exit();
}
if ($email == null) {
echo "<b>Você precisa inserir seu email</b>.";
exit();
}
if ($mensagem == null) {
echo "<b>Você precisa inserir seu comentário</ b>.";
exit();
}
if (preg_match($palavras, implode ($_POST))) {
echo "<b>Você precisa melhorar seus termos</b>.";
exit();
}
if (preg_match($links, implode ($_POST))) {
echo "<b>Você não pode adicionar links aqui</b>.";
exit();
}
$inserir = mysql_query ("insert into contato (name, email, data, mensagem) values ('$name', '$email', '$data', ' $mensagem')"); if ($inserir > 0) {
echo "mensagem enviada com sucesso";
/* Na linha $mail_admin, insira um email válido de administrador do site. Sempre que alguém enviar um comentário, um Email lhe será enviado para que você decida se deseja manter ou excluir o comentário */
$mail_admin = "seu_site@seu_site.com";
/* Nas linhas seguintes está a codificação html para o conteúdo do Email que será enviado para o usuário que fez o comentário */
$mensagem = "<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01//EN' 'http://www.w3.org/TR/html4/strict. dtd'><html><head><title >".$title."</title><style type=' text/css'>body{width:98%;height:auto; text-align:left;margin:0px;padding:1%;}h1 {font-size:320%;color:#008;font-family:impact;} p{font-family:arial;}</style></ head><body><p>Olá <b>".$name."</b>, obrigado por <b>".$title."</b> no nosso <b>WebSite</b>.</body> </html>";
/*A linha abaixo envia o Email para o usuário que comentou */
$envia = mail($email,$title,$mensagem, $headers);
/* Nas linhas seguintes está a codificação html para o conteúdo do Email que será enviado alertando o administrador que alguém comentou no seu WebSite, para que ele analise o comentário e resolva se deve mantê-lo ou removê-lo do Banco de Dados */
$mensagem_admin = "<html>< head><title>".$title."</ title></head><body style='width:98%;height:auto;margin: 0px;padding:1%;'><p>Admin< b>, ".$name."</b>, <b>".$email. "</b>, com o IP: <b>".$ip. "</ b>, em <b>" .$data. "</b>, comentou em <b>". $title."</b></p></ body></html>";
/*A linha abaixio envia o Email para o Administrador */
$envia = mail($mail_admin,$title, $mensagem_admin,$headers);
}
?>
<?
/*O trecho abaixo exibe todos os comentários feitos até o momento */
echo "<div class='exibir_teste'>";
$ip = $_SERVER['REMOTE_ADDR'];
echo "<p style='color:#260;font- size:90%;float:right;margin:5px;'> Seu Ip:<i style='color:#00f;'>" .$ip."</i></p>";
echo " <h2>Mensagens</h2>";
$sql = "select * from contato order by id desc";
$executar = mysql_query ($sql);
while ($exibir = mysql_fetch_array ($executar)){
echo "<b> nome: </b>" .$exibir['name'];
/* Aqui seria a linha de exibição do Email do usuário, que será ocultado, porém ainda estará no seu Banco de Dados */
echo "<br>";
echo "<b> data: </b>" . $exibir['DATA'];
echo "<br>";
echo "<b> mensagem: </ b>" .$exibir['mensagem'];
echo "<hr>";
}
echo "</div>";
?>
</body>
</html>

Excluir Dados

Por ser um formulário dinâmico em que os usuários inserem dados automaticamente, você pode precisar de vez em quando, devido ao tipo de comentário ser aceitável ou não pelo seu site ou aplicativo, deletar um ou outro comentário. Então para isto você deve acessar o seu host do MySql, e no menu esquerdo do gerenciador click no banco desejado e depois na tabela na qual quer excluir dados. Na janela à direita estão todos os dados inseridos até o momento, para editar click no "lápis" e para deletar dados click no "X". Caso queira deletar todos os dados, click em Limpar no menu superior do gerenciador MySql.

| | HomePage | Relatar Problema |