Ir para conteúdo

POWERED BY:

Arquivado

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

mwebster

[Resolvido] Formulário em PHP não funciona

Recommended Posts

Olá, já tentei fazer funcionar um formulário em PHP de várias formas, mas não deu. Esse código abaixo é o que peguei de um tutorial no Youtube.

 

Alguém sabe o que está faltando? É pra ser um formulário simples :]

 

 

ENVIAR.PHP:

<?php
$nome = $_POST['nome'];
$telefone = $_POST['telefone'];
$cidade = $_POST['cidade'];
$email = $_POST['email'];
$assunto = $_POST['assunto'];
$mensagem = $_POST['mensagem'];

mail("mwebster.nu@gmail.com", "$assunto", "Nome: $nome", "Telefone: $telefone", "Cidade: $cidade", "E-mail: $email", "Assunto: $assunto", "Mensagem: $mensagem",
"FROM:$nome<$email>");

echo "Sua mensagem foi enviada com sucesso!";

?>

 

HTML:

<form name="formulario" action="enviar.php" method="post">
					<fieldset>
		
						<label>Nome:<input type="text" name="nome" id="nome" /></label>
						<label>Telefone:<input type="text" name="telefone" id="telefone" /></label>
						<label>Cidade:<input type="text" name="cidade" id="cidade" /></label>
						<label>E-mail:<input type="text" name="email" id="email" /></label>
						<label>Assunto:<input type="text" name="assunto" id="assunto" /></label>
						<label class="mensagem">Mensagem:<textarea name="mensagem" id="mensagem"></textarea></label>
						<input type="submit" name="Submit" class="enviar" value="Enviar" /></label>
		
					</fieldset>
				</form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta fazer dessa maneira:

<?php
$nome = $_POST['nome'];
$telefone = $_POST['telefone'];
$cidade = $_POST['cidade'];
$email = $_POST['email'];
$assunto = $_POST['assunto'];
$mensagem = $_POST['mensagem'];

$headers = "MIME-Version: 1.1\r\n";
$headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";
$headers .= "From: SEUEMAIL@seudominio.com.br\r\n"; // remetente
$headers .= "Return-Path: SEUEMAIL@seudominio.com.br\r\n"; // return-path

$corpo = "Formulário\r\n";
$corpo .= "Nome: ".$nome."\r\n";
$corpo .= "Telefone: ".$telefone."\r\n";
$corpo .= "Cidade: ".$cidade."\r\n";
$corpo .= "E-mail: ".$email."\r\n";
$corpo .= "Assunto: ".$assunto."\r\n";
$corpo .= "Mensagem:".$mensagem."\r\n";

mail("mwebster.nu@gmail.com", "Assunto do E-mail", $corpo, $headers);

echo "Sua mensagem foi enviada com sucesso!";

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora tá funcionando, obrigada :]

 

Mas o e-mail tá chegando com remetente "SEUEMAIL" e assunto "Assunto do E-mail", que código eu boto no lugar desses pra vir os dados da pessoa?

 

E a mensagem "Sua mensagem foi enviada com sucesso!" aparece numa nova página em branco. Como eu faço pra aparecer numa janela por cima, que o remetente dá ok e desaparece?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nas linhas:

 

$headers .= "From: SEUEMAIL@seudominio.com.br\r\n"; // remetente

$headers .= "Return-Path: SEUEMAIL@seudominio.com.br\r\n"; // return-path

 

Substitui o SEUEMAIL@seudominio.com.br pelo seu email, ué..

 

 

E no campo:

mail("mwebster.nu@gmail.com", "Assunto do E-mail", $corpo, $headers);

Substitui "Assunto do E-mail" por $assunto.

 

Mais atenção no código né?

 

Quanto a janela com o ok, você precisará de Javascript.

Até mais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu perguntei sobre o "SEUEMAIL@seudominio.com.br" porque no caso se eu botar o MEU e-mail no from, vai vir ele como remetente, quando na verdade deveria ser o e-mail de quem tá me mandando a mensagem.

 

Só trabalhei com XHTML e CSS até hoje e quis fazer um formulário, por isso as dúvidas que consideras fáceis. De qualquer forma, obrigada, vou pesquisar como aplicar a janela com o ok.

Compartilhar este post


Link para o post
Compartilhar em outros sites

o MEU e-mail no from, vai vir ele como remetente, quando na verdade deveria ser o e-mail de quem tá me mandando a mensagem.

Dependendo do servidor de hospedagem (ex: Locaweb), você precisará, necessariamente, colocar o SEU email e não de quem está enviando.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aah ok, não sabia que tinha a ver. Meu servidor é DialHost, vou botar meu próprio e-mail mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta fazer dessa maneira:

<?php
$nome = $_POST['nome'];
$telefone = $_POST['telefone'];
$cidade = $_POST['cidade'];
$email = $_POST['email'];
$assunto = $_POST['assunto'];
$mensagem = $_POST['mensagem'];

$headers = "MIME-Version: 1.1\r\n";
$headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";
$headers .= "From: SEUEMAIL@seudominio.com.br\r\n"; // remetente
$headers .= "Return-Path: SEUEMAIL@seudominio.com.br\r\n"; // return-path

$corpo = "Formulário\r\n";
$corpo .= "Nome: ".$nome."\r\n";
$corpo .= "Telefone: ".$telefone."\r\n";
$corpo .= "Cidade: ".$cidade."\r\n";
$corpo .= "E-mail: ".$email."\r\n";
$corpo .= "Assunto: ".$assunto."\r\n";
$corpo .= "Mensagem:".$mensagem."\r\n";

mail("mwebster.nu@gmail.com", "Assunto do E-mail", $corpo, $headers);

echo "Sua mensagem foi enviada com sucesso!";

?>

 

 

 

Thelon, tentei aqui e não deu certo no meu servidor easyPHP dá essa mensagem: "Warning: mail() [function.mail]: Failed to connect to mailserver at "127.0.0.1" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\Arquivos de programas\EasyPHP-5.3.8.0\www\form.php on line 23

Sua mensagem foi enviada com sucesso!"

 

Minha linha 23 está assim: "mail("wayne.nova@gmail.com", "Teste", $corpo, $headers);"

 

Preciso muito resolver isso rápido, será que o problema é só no EasyPHP, será que vai funcionar se eu colocar no ar (Servidor UOL)?!

 

Agradeço desde já

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.