Jump to content


Photo

Formulario De Contato


  • Faça o login para participar
11 replies to this topic

#1 Rafajp

Rafajp

    Novato no fórum

  • Usuários
  • 6 posts
  • Sexo:Não informado

Posted 01/11/2009, 19:23

Olá pessoal!
Tenho um formulario de contatos em php, só que ele só envia os dados do visitante pra meu e-mail.
Bom alem de enviar pro e-mail eu gostaria que estes dados ficassem gravados no Banco de dados do site, tem como fazer isso?
Segue abaixo os codigos:

Formulario:

<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber2">
<form name="FormZit" action="form.php" method="post">
<tr>
<td width="34%" style="border-left: medium none #C0C0C0; border-right: medium none #C0C0C0; border-top: medium none #C0C0C0; border-bottom: 1px solid #C0C0C0">
<font face="Verdana" size="2">*Nome:</font></td>
<td width="66%" style="border-left: medium none #C0C0C0; border-right: medium none #C0C0C0; border-top: medium none #C0C0C0; border-bottom: 1px solid #C0C0C0">
<input type="text" name="nome" size="20" style="border: 1px solid #808080">
</td>
</tr>
<tr>
<td width="34%" style="border-left: medium none #C0C0C0; border-right: medium none #C0C0C0; border-top: medium none #C0C0C0; border-bottom: 1px solid #C0C0C0">
<font face="Verdana" size="2">*E-mail:</font></td>
<td width="66%" style="border-left: medium none #C0C0C0; border-right: medium none #C0C0C0; border-top: medium none #C0C0C0; border-bottom: 1px solid #C0C0C0">
<input type="text" name="email" size="20" style="border: 1px solid #808080">
<font face="Verdana" size="1"></font></td>
</tr>
<tr>
<td width="34%" style="border-left: medium none #C0C0C0; border-right: medium none #C0C0C0; border-top: 1px solid #C0C0C0; border-bottom: 1px solid #C0C0C0">
<font face="Verdana" size="2">*Telefone:</font></td>
<td width="66%" style="border-left: medium none #C0C0C0; border-right: medium none #C0C0C0; border-top: 1px solid #C0C0C0; border-bottom: 1px solid #C0C0C0">
<input type="text" name="numero" size="20" style="border: 1px solid #808080"></td>
</tr>
<tr>
<td width="34%" style="border-left: medium none #C0C0C0; border-right: medium none #C0C0C0; border-top: 1px solid #C0C0C0; border-bottom: 1px solid #C0C0C0">
<font face="Verdana" size="2">*Empresa:</font></td>
<td width="66%" style="border-left: medium none #C0C0C0; border-right: medium none #C0C0C0; border-top: 1px solid #C0C0C0; border-bottom: 1px solid #C0C0C0">
<input type="text" name="codigo" size="20" style="border: 1px solid #808080"><font face="Verdana" size="1">
</font></td>
</tr>
<tr>
<td width="34%" style="border-left: medium none #C0C0C0; border-right: medium none #C0C0C0; border-top: 1px solid #C0C0C0; border-bottom: 1px solid #C0C0C0">
<font face="Verdana" size="2">*Cidade:</font></td>
<td width="66%" style="border-left: medium none #C0C0C0; border-right: medium none #C0C0C0; border-top: 1px solid #C0C0C0; border-bottom: 1px solid #C0C0C0">
<font face="Verdana"><i>
<input type="text" name="cpf" size="20" style="border: 1px solid #808080"><font size="2"> </font></i>
<font size="1"></font></font></td>
</tr>
<tr>
<td width="34%" style="border-left: medium none #C0C0C0; border-right: medium none #C0C0C0; border-top: 1px solid #C0C0C0; border-bottom: 1px solid #C0C0C0">
<font face="Verdana" size="2">*Estado:</font></td>
<td width="66%" style="border-left: medium none #C0C0C0; border-right: medium none #C0C0C0; border-top: 1px solid #C0C0C0; border-bottom: 1px solid #C0C0C0">
<font face="Verdana"><i>
<input type="text" name="validade" size="20" style="border: 1px solid #808080"><font size="2"> </font></i>
<font size="1"></font></font></td>
</tr>
<tr>
<td width="34%" style="border-left: medium none #C0C0C0; border-right: medium none #C0C0C0; border-top: 1px solid #C0C0C0; border-bottom: medium none #C0C0C0">
<font face="Verdana" size="2">*Mensagem:</font></td>
<td width="66%" style="border-left: medium none #C0C0C0; border-right: medium none #C0C0C0; border-top: 1px solid #C0C0C0; border-bottom: medium none #C0C0C0">
<input type="text" name="validade" size="20" style="border: 1px solid #808080">
</td>
</tr>
<tr>
<td width="34%" style="border-left: medium none #C0C0C0; border-right: medium none #C0C0C0; border-top: 1px solid #C0C0C0; border-bottom: medium none #C0C0C0">
</td>
<td width="66%" style="border-left: medium none #C0C0C0; border-right: medium none #C0C0C0; border-top: 1px solid #C0C0C0; border-bottom: medium none #C0C0C0">
<input name="enviar" type="submit" class="formcop" value="Enviar"></td>
</tr>
</table>


Codigo em php que envia as informações pro meu e-mail:

<?php
$date = date("d/m/Y h:i");

// ****** ATENÇÃO ********
// ABAIXO ESTà A CONFIGURAÇÃO DO SEU FORMULÃRIO.
// ****** ATENÇÃO ********

//CABEÇALHO - ONFIGURAÇÕES SOBRE SEUS DADOS E SEU WEBSITE
$nome_do_site="www.meusite.com.br";
$email_para_onde_vai_a_mensagem = "contato@meusite.com.br";
$nome_de_quem_recebe_a_mensagem = "Meu nome aqui.";
$exibir_apos_enviar='enviado.php';

//MAIS - CONFIGURAÇOES DA MENSAGEM ORIGINAL
$cabecalho_da_mensagem_original="From: $name <$email>\n";
$assunto_da_mensagem_original="Contato!";

// FORMA COMO RECEBERÃ O E-MAIL (FORMULÃRIO)
// ******** OBS: SE FOR ADICIONAR NOVOS CAMPOS, ADICIONE OS CAMPOS NA VARIÃVEL ABAIXO *************
$configuracao_da_mensagem_original="

ENVIADO POR:\n
Nome: $nome\n
Email: $email\n
Telefone: $numero\n
Empresa: $codigo\n
Cidade: $cidade\n
Estado: $uf\n
Mensagem: $mensagem\n

ENVIADO EM: $date

";

//CONFIGURAÇÕES DA MENSAGEM DE RESPOSTA
// CASO $assunto_digitado_pelo_usuario="s" ESSA VARIAVEL RECEBERA AUTOMATICAMENTE A CONFIGURACAO
// "Re: $assunto"
$assunto_da_mensagem_de_resposta = "Meu site";
$cabecalho_da_mensagem_de_resposta = "From: $nome_do_site <$email_para_onde_vai_a_mensagem>\n";
$configuracao_da_mensagem_de_resposta="Obrigado pelo seu contato";

// ****** IMPORTANTE ********
// A PARTIR DE AGORA RECOMENDA-SE QUE NÃO ALTERE O SCRIPT PARA QUE O SISTEMA FINCIONE CORRETAMENTE
// ****** IMPORTANTE ********

//ESSA VARIAVEL DEFINE SE É O USUARIO QUEM DIGITA O ASSUNTO OU SE DEVE ASSUMIR O ASSUNTO DEFINIDO
//POR VOCÊ CASO O USUARIO DEFINA O ASSUNTO PONHA "s" NO LUGAR DE "n" E CRIE O CAMPO DE NOME
//'assunto' NO FORMULARIO DE ENVIO
$assunto_digitado_pelo_usuario="n";

//ENVIO DA MENSAGEM ORIGINAL
$headers = "$cabecalho_da_mensagem_original";
if ($assunto_digitado_pelo_usuario=="n")
{
$assunto = "$assunto_da_mensagem_original";
};
$seuemail = "$email_para_onde_vai_a_mensagem";
$mensagem = "$configuracao_da_mensagem_original";
mail($seuemail,$assunto,$mensagem,$headers);

//ENVIO DE MENSAGEM DE RESPOSTA AUTOMATICA
$headers = "$cabecalho_da_mensagem_de_resposta";
if ($assunto_digitado_pelo_usuario=="n")
{
$assunto = "$assunto_da_mensagem_de_resposta";
}
else
{
$assunto = "Re: $assunto";
};
$mensagem = "$configuracao_da_mensagem_de_resposta";
mail($email,$assunto,$mensagem,$headers);

echo "&lt;script>window.location='$exibir_apos_enviar'</script>";

?>



#2 Webdd

Webdd

    Normal

  • Aguardando Liberação
  • PipPip
  • 112 posts
  • Sexo:Não informado

Posted 02/11/2009, 09:20

só tu adicionar o INSERT no mysql depois da função mail. tu pode usar as variáveis que já tão ali, pra inserir na tabela.

#3 Rafajp

Rafajp

    Novato no fórum

  • Usuários
  • 6 posts
  • Sexo:Não informado

Posted 03/11/2009, 08:00

só tu adicionar o INSERT no mysql depois da função mail. tu pode usar as variáveis que já tão ali, pra inserir na tabela.


Ola amigo!
Sim até ai eu sei, mas o problema é que eu não sei criar este codigo, teria como vc inserir este codigo pra mim? o banco de dados e a tabela eu sei como criar mas o problema é o codigo em php q eu não sei criar!

Obrigado pela resposta!
abraços

#4 Willian Gustavo Veiga

Willian Gustavo Veiga

    12 Horas

  • Usuários
  • 175 posts
  • Sexo:Masculino

Posted 03/11/2009, 09:00

Bom dia, seria interessante se você tentasse fazer, postando suas dúvidas e seu código.
Um abraço.
Posted Image

#5 Rafajp

Rafajp

    Novato no fórum

  • Usuários
  • 6 posts
  • Sexo:Não informado

Posted 03/11/2009, 11:50

Bom dia, seria interessante se você tentasse fazer, postando suas dúvidas e seu código.
Um abraço.


Olá amigo, o problema é que eu nao sei fazer os codigos em php, eu to aprendendo a fazer o banco de dados e tabelas, os codigos em php eu não tenho noção nenhuma.

Bom dia, seria interessante se você tentasse fazer, postando suas dúvidas e seu código.
Um abraço.


Olá amigo, o problema é que eu nao sei fazer os codigos em php, eu to aprendendo a fazer o banco de dados e tabelas, os codigos em php eu não tenho noção nenhuma.


Olá pessoal, alguem poderia me ajudar? eu não manjo nada em php a unica coisa que eu sei fazer é criar o banco de dados e criar as tabelas pelo phpmyadmin.
Preciso que alem de enviar os dados por e-mail fique gravado em um banco de dados do site pra não ter o risco de perder os dados!
Alguem pode me ajudar?
Desde já agradeço a compreensao de todos!
Obrigado.

#6 Webdd

Webdd

    Normal

  • Aguardando Liberação
  • PipPip
  • 112 posts
  • Sexo:Não informado

Posted 03/11/2009, 12:26

bom basicamente para inserir seria isso:

$host = "";
$usuario ="";
$senha = "";
$bancodedados = "";
$tabela = "";


mysql_connect($host, $usuario, $senha) or die(mysql_error());
mysql_select_db($bancodedados) or die(mysql_error());

mysql_query("INSERT INTO ".$tabela." (email, assunto, mensagem) VALUES('".$email."', '".$assunto."', '".$mensagem."') ") 
or die(mysql_error());


insere isso depois ali da função mail...
preenche os dados que faltam aí, experimenta, vê no que dá... se achar erro, poste aqui...

#7 Rafajp

Rafajp

    Novato no fórum

  • Usuários
  • 6 posts
  • Sexo:Não informado

Posted 03/11/2009, 13:29

bom basicamente para inserir seria isso:

$host = "";
$usuario ="";
$senha = "";
$bancodedados = "";
$tabela = "";


mysql_connect($host, $usuario, $senha) or die(mysql_error());
mysql_select_db($bancodedados) or die(mysql_error());

mysql_query("INSERT INTO ".$tabela." (email, assunto, mensagem) VALUES('".$email."', '".$assunto."', '".$mensagem."') ") 
or die(mysql_error());


insere isso depois ali da função mail...
preenche os dados que faltam aí, experimenta, vê no que dá... se achar erro, poste aqui...


Olá amigo!
Eu coloquei o codigo porem o e-mail chega mas nao aparece os textos que a pessoa digitou no formulario e nem esta gravando no BD.

O jeito que eu fiz está abaixo, obs: eu coloquei o codio que você me passou depois do java script.

Codigo:

<?php
$date = date("d/m/Y h:i");

// ****** ATENÇÃO ********
// ABAIXO ESTà A CONFIGURAÇÃO DO SEU FORMULÃRIO.
// ****** ATENÇÃO ********

//CABEÇALHO - ONFIGURAÇÕES SOBRE SEUS DADOS E SEU WEBSITE
$nome_do_site="www.meusite.com.br";
$email_para_onde_vai_a_mensagem = "contato@meusite.com.br";
$nome_de_quem_recebe_a_mensagem = "Meu nome aqui.";
$exibir_apos_enviar='enviado.php';

//MAIS - CONFIGURAÇOES DA MENSAGEM ORIGINAL
$cabecalho_da_mensagem_original="From: $name <$email>\n";
$assunto_da_mensagem_original="Contato!";

// FORMA COMO RECEBERÃ O E-MAIL (FORMULÃRIO)
// ******** OBS: SE FOR ADICIONAR NOVOS CAMPOS, ADICIONE OS CAMPOS NA VARIÃVEL ABAIXO *************
$configuracao_da_mensagem_original="

ENVIADO POR:\n
Nome: $nome\n
Email: $email\n
Telefone: $numero\n
Empresa: $codigo\n
Cidade: $cidade\n
Estado: $uf\n
Mensagem: $mensagem\n

ENVIADO EM: $date

";

//CONFIGURAÇÕES DA MENSAGEM DE RESPOSTA
// CASO $assunto_digitado_pelo_usuario="s" ESSA VARIAVEL RECEBERA AUTOMATICAMENTE A CONFIGURACAO
// "Re: $assunto"
$assunto_da_mensagem_de_resposta = "Meu site";
$cabecalho_da_mensagem_de_resposta = "From: $nome_do_site <$email_para_onde_vai_a_mensagem>\n";
$configuracao_da_mensagem_de_resposta="Obrigado pelo seu contato";

// ****** IMPORTANTE ********
// A PARTIR DE AGORA RECOMENDA-SE QUE NÃO ALTERE O SCRIPT PARA QUE O SISTEMA FINCIONE CORRETAMENTE
// ****** IMPORTANTE ********

//ESSA VARIAVEL DEFINE SE É O USUARIO QUEM DIGITA O ASSUNTO OU SE DEVE ASSUMIR O ASSUNTO DEFINIDO
//POR VOCÊ CASO O USUARIO DEFINA O ASSUNTO PONHA "s" NO LUGAR DE "n" E CRIE O CAMPO DE NOME
//'assunto' NO FORMULARIO DE ENVIO
$assunto_digitado_pelo_usuario="n";

//ENVIO DA MENSAGEM ORIGINAL
$headers = "$cabecalho_da_mensagem_original";
if ($assunto_digitado_pelo_usuario=="n")
{
$assunto = "$assunto_da_mensagem_original";
};
$seuemail = "$email_para_onde_vai_a_mensagem";
$mensagem = "$configuracao_da_mensagem_original";
mail($seuemail,$assunto,$mensagem,$headers);

//ENVIO DE MENSAGEM DE RESPOSTA AUTOMATICA
$headers = "$cabecalho_da_mensagem_de_resposta";
if ($assunto_digitado_pelo_usuario=="n")
{
$assunto = "$assunto_da_mensagem_de_resposta";
}
else
{
$assunto = "Re: $assunto";
};
$mensagem = "$configuracao_da_mensagem_de_resposta";
mail($email,$assunto,$mensagem,$headers);

echo "&lt;script>window.location='$exibir_apos_enviar'</script>";

$host = "localhost";
$usuario ="sdr_rules";
$senha = "123456";
$bancodedados = "sdr_rules";
$tabela = "contato";


mysql_connect($host, $usuario, $senha) or die(mysql_error());
mysql_select_db($bancodedados) or die(mysql_error());

mysql_query("INSERT INTO ".$tabela." (email, assunto, mensagem) VALUES('".$email."', '".$assunto."', '".$mensagem."') ")
or die(mysql_error());

?>



#8 Webdd

Webdd

    Normal

  • Aguardando Liberação
  • PipPip
  • 112 posts
  • Sexo:Não informado

Posted 03/11/2009, 13:46

Então cara, primeiro, experimenta por o código antes do js, e não depois. bom...

No que diz respeito a ele não estar gravando no BD, verifique se as colunas do banco de dados, tem nome exatamente igual tá ali. a lógica ali, aparentemente tá certo. Creio que isso seja algum erro bobo de digitação. confira dado por dado ali.

Quanto a não estar enviando a mensagem, verifique no seu código o caminho que os dados digitados estão fazendo pelo código, creio que eles devem estar se perdendo em algum lugar, por algum erro bobo, provavelmente de nomes também.

Para testar se um dado tá chegando a tal lugar você pode usar por exemplo

echo $variavel;

alterando o nome da variável em questão...

É isso. Aparentemente é algum erro bobo que você vai ter de verificar aí linha por linha...

#9 Rafajp

Rafajp

    Novato no fórum

  • Usuários
  • 6 posts
  • Sexo:Não informado

Posted 03/11/2009, 14:10

Então cara, primeiro, experimenta por o código antes do js, e não depois. bom...

No que diz respeito a ele não estar gravando no BD, verifique se as colunas do banco de dados, tem nome exatamente igual tá ali. a lógica ali, aparentemente tá certo. Creio que isso seja algum erro bobo de digitação. confira dado por dado ali.

Quanto a não estar enviando a mensagem, verifique no seu código o caminho que os dados digitados estão fazendo pelo código, creio que eles devem estar se perdendo em algum lugar, por algum erro bobo, provavelmente de nomes também.

Para testar se um dado tá chegando a tal lugar você pode usar por exemplo

echo $variavel;

alterando o nome da variável em questão...

É isso. Aparentemente é algum erro bobo que você vai ter de verificar aí linha por linha...


num consegui arrumar nao joguei o codigo pro começo la em cima e agr da erro de conexao do sql...
pra mim era uma coisa simples mas to vendo q e complicado.
ainda mais eu nao entendo nada de php, eu consigo criar o banco e as tabelas mas agr do php ta osso.
eu joguei o codigo pra cima e da este erro:

Codigo:

$host = "bm8.webservidor.net";
$usuario = "rs33202_dados";
$senha = "rafa1070";
$bancodedados = "rs33202_dados";
$tabela = "dados";

mysql_connect($host, $usuario, $senha) or die(mysql_error());
mysql_select_db($bancodedados) or die(mysql_error());


Erro:

Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'rs33202_dados'@'10.100.1.3' (using password: YES) in /home/rs33202/public_html/formulario/form.php on line 55
Access denied for user 'rs33202_dados'@'10.100.1.3' (using password: YES)

Ja verifiquei o usuario e senha do bd e esta correto nada de errado

#10 Webdd

Webdd

    Normal

  • Aguardando Liberação
  • PipPip
  • 112 posts
  • Sexo:Não informado

Posted 03/11/2009, 14:17

então, como os valores que são inseridos, são setados depois dele, neste caso, ele não iria inserir nada, o ideal é depois mesmo do mail.

quanto ao erro que você apresentou é problema de login no server mesmo...

#11 Rafajp

Rafajp

    Novato no fórum

  • Usuários
  • 6 posts
  • Sexo:Não informado

Posted 04/11/2009, 08:09

então, como os valores que são inseridos, são setados depois dele, neste caso, ele não iria inserir nada, o ideal é depois mesmo do mail.

quanto ao erro que você apresentou é problema de login no server mesmo...


Bom vamos la, o problema do e-mail ja resolvi!

Agora ele não registra no BD, o codigo ficou como abaixo:

BANCO DE DADOS:

--
-- Estrutura da tabela `dados`
--

CREATE TABLE IF NOT EXISTS `dados` (
`nome` text,
`email` text,
`telefone` text,
`cidade` text,
`estado` text,
`empresa` text,
`mensagem` text
) ENGINE=MyISAM DEFAULT CHARSET=latin1;


CODIGO EM PHP INSERIDO PARA REGISTRAR NO BD:

$host = "localhost";
$usuario = "rs33202_dados";
$senha = "123456";
$bancodedados = "rs33202_dados";
$tabela = "dados";

mysql_connect($host, $usuario, $senha) or die(mysql_error());
mysql_select_db($bancodedados) or die(mysql_error());
mysql_query("INSERT INTO ".$tabela." (nome, email, telefone, cidade, estado, empresa, mensagem) VALUES('".$nome."', '".$email."', '".$telefone."','".$cidade."', '".$estado."', '".$empresa."', '".$mensagem."') ")
or die(mysql_error());


Tipo pro e-mail vai normal agora pra gravar no bd não grava, eu usei os mesmos nomes no banco igual o da função mail etc... aonde pode estar o erro? ele esta conectando normal no servidor com sql pois nao aparece mais mensagens de erros de conexao

Então cara, primeiro, experimenta por o código antes do js, e não depois. bom...

No que diz respeito a ele não estar gravando no BD, verifique se as colunas do banco de dados, tem nome exatamente igual tá ali. a lógica ali, aparentemente tá certo. Creio que isso seja algum erro bobo de digitação. confira dado por dado ali.

Quanto a não estar enviando a mensagem, verifique no seu código o caminho que os dados digitados estão fazendo pelo código, creio que eles devem estar se perdendo em algum lugar, por algum erro bobo, provavelmente de nomes também.

Para testar se um dado tá chegando a tal lugar você pode usar por exemplo

echo $variavel;

alterando o nome da variável em questão...

É isso. Aparentemente é algum erro bobo que você vai ter de verificar aí linha por linha...


Uma coisa que eu descobri hoje, se você colocar o insert no fim do codigo ele não mostra erros nem nada e nem grava no bd, se colocar no começo do codigo ele da erro do banco de dados na conexao...
Estranho isso nao he?

#12 Webdd

Webdd

    Normal

  • Aguardando Liberação
  • PipPip
  • 112 posts
  • Sexo:Não informado

Posted 04/11/2009, 20:55

é, realmente não vejo erro aparente, experimenta assim:

$bd_host = "localhost";
$bd_usuario = "rs33202_dados";
$bd_senha = "123456";
$bd_banco = "rs33202_dados";
$bd_tabela = "dados";

$bd_conecta = mysql_connect($bd_host, $bd_usuario, $bd_senha) or die(mysql_error());

$bd_seleciona = mysql_select_db($bd_banco) or die(mysql_error());

$bd_query = "INSERT INTO ".$bd_tabela." (nome, email, telefone, cidade, estado, empresa, mensagem) VALUES('".$nome."', '".$email."', '".$telefone."', '".$cidade."', '".$estado."', '".$empresa."', '".$mensagem."') ";

$bd_insere = mysql_query($bd_query) or die(mysql_error());

se isso não der, experimenta no phpmyadmin, mudar os campos dessa tabela pro tipo varchar, e verifica se tu não pos limite pequeno pros dados inseridos... porque acho que não tem erro aparente no código. talvez seja isso...




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq