Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

saulus

Formulário de Contato PHP em Branco

Recommended Posts

Bom Galera é o seguinte, com base em alguns tutoriais que encontrei pela internet em fiz um formulário de contato em PHP, fiz de acordo com que ensinava, hospedei no servidor, só que quando preenches o campos e envia o formulario eu recebo um e-mail com remetente desconhecido e todos os campos em branco, aparece apenas Nome, e-mail... más o que a pessoa digita não aparece nada. Pesquisando para saber se sobre esse problema vi que outras pessoas tinha o mesmo, muitos diziam que era apenas deixar os register_globals on, no meu caso o meu esta em off. Eu segui um tutorial na internet, salve no servidor um aquivos com o nome php.ini e dentro o texto register_globals = on, mas mesmo assim não resolveu meu problema, continuo não recebendo o que as pessoas digitam, tudo em branco. Quando eu hospedei meu site a empresa responsável me mandou um e-mail com as informações de minha hospedagem e com a seguinte mensagem:

6. FormMail para formulários

 

O endereço correto para o seu FormMail é http://www.criarstudio.com.br/cgi-bin/FormMail.cgi, Veja o exemplo abaixo:

 

A. Ação do Formulário:

<form method="post" action="http://www.criarstudio.com.br/cgi-bin/FormMail.cgi">

 

B. Quem recebe o Formulário:

<input name="recipient" type="hidden" value="seuemail@criarstudio.com.br">

 

C. Assunto do Formulário:

<input name="subject" type="hidden" value="Nome do Formulário">

 

D. Página do seu site para qual será redirecionado após o envio:

<input name="redirect" type="hidden" value="http://www.criarstudio.com.br/redirecionamento.html">

 

E. Ordem de envio dos campos do seu formulário:

<input name="sort" type="hidden" value="order:Campo1,Campo2,Campo3">

 

Obs.: Você não pode utilizar no value do recipient e-mails externos, deve apenas utilizar e-mails criados no CPANEL.

Então eu gostaria de saber o que eu faça para resolver esse meu problema, para que os e-mails recebidos não apareçam em branco??

 

Abaixo o form.php que usei.

<?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="CriarStudio";
$email_para_onde_vai_a_mensagem = "atendimento@criarstudio.com.br";
$nome_de_quem_recebe_a_mensagem = "Saulo Lago";
$exibir_apos_enviar='enviado.php';

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

// 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: $telefone\n
Cidade: $cidade\n
Estado: $estado\n
Mensagem: $textodamensagem\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 = "Confirmação CriarStudio";
$cabecalho_da_mensagem_de_resposta = "From: $nome_do_site <$email_para_onde_vai_a_mensagem>\n";
$configuracao_da_mensagem_de_resposta="Obrigado por entrar em contato!\nEstaremos respondendo em breve...\nAtenciosamente,\n$nome_do_site\n\nEnviado em: $date";

// ****** 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="s";

//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 "<script>window.location='$exibir_apos_enviar'</script>";

?>

Obrigado e espero que me ajudem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Troque $nome por $_POST['nome'] e assim por diante, em todas as variáveis. Deve funcionar.

http://br.php.net/manual/en/reserved.variables.post.php

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Matias,

Desculpe ainda sou novato nesse ramo, será que poderia me dizer onde mudar??

Eu pensei que era de uma forma aqui, fiz um teste e nao funciono. se puder me ajudar agradeço.

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

saulus, o matias_rezende falou desta parte :

 

 


ENVIADO POR:\n 
Nome: $nome\n 
Email: $email\n 
Telefone: $telefone\n 
Cidade: $cidade\n 
Estado: $estado\n 
Mensagem: $textodamensagem\n 

ENVIADO EM: $date 


 

voce declarou as variaveis, mas de onde elas estao vindo ? se for de um formulario capture os dados com o metedo

 


$_POST[""];

Compartilhar este post


Link para o post
Compartilhar em outros sites

Creio eu que entendi...

mas quando eu mudo o $nome para o $_POST["nome"]

acontece esse erro:

 

Parse error: syntax error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/criarstu/public_html/form.php on line 23

=/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja o que ocorre... Leia os comentários dentro do código e depois apague.

 

$configuracao_da_mensagem_original=" //aqui você abriu as aspas duplas

ENVIADO POR:\n
Nome: $_POST["nome"]\n// se você fizer assim, com aspa dupla, vai fechar e abrir de novo. 
Email: $_POST['email']\n// esta é a forma correta.
Telefone: $telefone\n
Cidade: $cidade\n
Estado: $estado\n
Mensagem: $textodamensagem\n

ENVIADO EM: $date

";

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom eu tinha dito. eu sou novato entao nao poço diser se fiz correto... mas tentei de várias formas e nao deu... e uma delas foi assim:

ENVIADO POR:\n 
Nome: $_POST["nome"]"]\n; 
Email: $_POST["email"]\n; 
Telefone: $_POST["telefone"]\n; 
Cidade: $_POST["cidade"]\n; 
Estado: $_POST["estado"]\n; 
Mensagem: $_POST["textodamensagem"]\n; 

ENVIADO EM: $date 

 

entao nao sei se esta correto dessa mandeira, más sei que tentei de várias formas

=/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não... Como eu disse antes, use aspas simples dentro do índice... Olha, leia dentro do seu código que eu expliquei o porque não é assim...

 

ENVIADO POR:\n 
Nome: $_POST['nome']\n; 
Email: $_POST['email']\n; 
Telefone: $_POST['telefone']\n; 
Cidade: $_POST['cidade']\n; 
Estado: $_POST['estado']\n; 
Mensagem: $_POST['textodamensagem']\n; 
 
ENVIADO EM: $date 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Matias,

Mesmo dessa forma que você me descreveu o erro ainda persiste

Parse error: syntax error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/criarstu/public_html/form.php on line 23

tem algo de errado além disso...

=/

Compartilhar este post


Link para o post
Compartilhar em outros sites

$nome =$_POST['nomedohtml'];

$email = '';

$telefone = '';

$cidade = '';

$estado = '';

$textodamensagem = '';

 

no teu arquivo.php q envia o email

 

ai dps sim

 

Nome: $nome\n

Email: $email\n

Telefone: $telefone\n

Cidade: $cidade\n

Estado: $estado\n

Mensagem: $textodamensagem\n

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu fiz alguns teste e deixei os campos da seguinte forma:

$configuracao_da_mensagem_original =

$nome = $_POST['nome'];
$email = $_POST['email'];
$telefone = $_POST['telefone'];
$cidade = $_POST['cidade'];
$estado = $_POST['estado'];
$textodamensagem = $_POST['textodamensagem'];

Removi os campos:

" - do campo $configuracao_da_mensagem_original
ENVIADO POR:\n
\n - dos campos $nome = $_POST['nome'];
ENVIADO EM: $date
e os " no final

E com isso aconteceu o seguinte.

todos os campos sumiram, exeto o campo "Nome" qualquer coisa que eu digitar aparece, mas somente ele;

 

Antes, quando os campos apareciam em branco eu nao recebia um e-mail de confirmação

depois que fiz essas alteração passe a receber.

Então gostaria saber como fazer para aparecer todos os campos agora, o campo "Nome" apareceu e o que digito. agora falto os outros

Obrigado.

Armengos mode (x)On ( )off

ahauhauhau

Compartilhar este post


Link para o post
Compartilhar em outros sites

Basicamente é o seguinte essas variáveis $_POST['xxxx]; vem do seu formulário, esses campos xxxx, ficam dentro dos seus inputs. Ex: <input name='xxxx' id='xxxx' type='text' />. Se não estiver configurado desse jeito, você não vai conseguir usar seus campos no PHP.

Compartilhar este post


Link para o post
Compartilhar em outros sites

verifiquei todos os nomes e eles estao corretos.

Algo no form.php esta errado que nao ta fazendo funcionar direito

esse formulario pego em...

=/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos lá... como houveram muitas mudanças desde o código inicial, poste o código como está agora e qual erro acontece.

Além disto, coloque este código no início, para efeito de debug e poste aqui o resultado também.

echo '<pre>';
print_r($_POST);

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Matias,

 

Consegui resolver uma parte, todos os campos e o que eu digito aparecem. Voltei o código inicial todo e nas variáveis coloquei da seguinte forma:

Nome: ".$_POST['nome']."\n;
Email: ".$_POST['email']."\n;
Telefone: ".$_POST['telefone']."\n;
Cidade: ".$_POST['cidade']."\n;
Estado: ".$_POST['estado']."\n;
Mensagem: ".$_POST['textodamensagem']."\n;

Só ta uma pouco diferente do que tinha passado antes, mas dessa forma que ta acima funciono normal.

Mas agora que vem um pequeno problema:

no formulário quando se preenchia o campo "E-mail" e a pessoa enviasse o formulário, automaticamente a pessoa recebia um e-mail de confirmação na sua caixa de entrada, só que nem agora e nem antes estou recebendo esses e-mails, eu só consegui fazer receber esses e-mails da forma que eu tinha feito no comentário que eu fiz logo acima (Postou Ontem, 16:58).

E Toda vez que alguem me envia algo, todas as mensagem recebidas aparecem com o Título "Sem Assunto" só que deveria aparecer isso:

$assunto_da_mensagem_original="Contato CriarStudio";

será agora falta algo??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dá uma olhada no manual da função mail. Veja quais são os parâmetros e qual é qual.

http://br.php.net/manual/pt_BR/function.mail.php

 

bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.