Ir para conteúdo

POWERED BY:

Arquivado

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

cassius_fpu

Formulário HTML usando mail()

Recommended Posts

Olá pessoal!

 

Desenvolvi o formulário abaixo para fazermos uma pesquisa de opinião aqui na empresa em que trabalho:

 

CSS

*{
	margin: 0;
	padding: 0;
	list-style:none;	
}

body{
	background-color: #F3F3F3;
	text-align: center;
}

h2, h3{
	color: #EB4747;
	font-family: arial, verdana, sans-serif;
}

h4{
	font: bold 15px Verdana, sans-serif;		
}

input{
	width: 150px;
	font: bold 15px Verdana, sans-serif;	
}

select{
	background-color: #F7F7D4; 
	width: 85px;	
	font: 15px Verdana, sans-serif;	
}

textarea{
	background-color: #FFFFCC; 
	font: 15px Verdana, sans-serif;
}

.container{
	background-color: #F8F8F8;
	width: 770px;
	heigth: auto;
	margin: auto;		
	margin-top: 10px;
	border: 1px solid #EB4747;	
}

.identificacao{
	margin-left: 5px;	
	text-align: left;	
	font: 15px Verdana, sans-serif;		
}

.identificacao li{
	margin-left: -40px;
	text-align: left;
}


.questoes{
	width: 48%;
	float: left;
	margin: 5px;
	border: 1px solid;	
	font: 15px Verdana, sans-serif;		
}

.questoes li{
	text-align: right;
}

.listaColorida{
	background-color: #BDD6FB;
}

#observacoes{
	margin-left: 5px;
	text-align: left;
	clear: both;
}

#selectIdentificacao{
	width:250px;
	background-color: #F7F7D4; 
	font: 15px Verdana, sans-serif;
}
#inputIdentificacao{
	width:250px;
	background-color: #FFFFCC; 
	font: 15px Verdana, sans-serif;
}

HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Pesquisa de opinião</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" type="text/css" href="css/estiloFormularioLOG.css">

</head>

<body>
	<div class="container">
		<h2>Seção de Logística</h2>	
		<h3 style="text-decoration: underline;">Pesquisa de opinião</h3>

		<br />
		
		<form id="" action="scriptsPHP/enviaFormularioLOG.php" method="post">
		
		<div class="identificacao">
		<table>
		<tr>
		<td>Nome (opcional):</td><td><input name="nome" type="text" id="inputIdentificacao" size=""></td> </tr>
		<tr>
			<td>E-mail (opcional):</td><td><input name="email" type="text" id="inputIdentificacao" size="">@dominio.com.br</td></tr>
		<tr>
			<td>Lotação (obrigatório):</td>
			<td><select name="secao" id="selectIdentificacao"><option selected></option><option value="Lotação Lorem">Lorem ipsum dolor sit amet</option></select></td>
		</tr>			
		</table>
		<br />
		</div>
			
		<div class="questoes">
		<h4>Material de Consumo (papel, café, etc.):</h4><br />
		<ul>
		<li class="listaColorida">Atendimento das demandas
		<select name="umConsumo">
		<option selected></option><option value="Ótimo">Ótimo</option><option value="Bom">Bom</option><option value="Regular">Regular</option><option value="Ruim">Ruim</option>
		</select>
		<br />
		</li>

		<li>Qualidade dos produtos
		<select name="doisConsumo">
		<option selected></option><option value="Ótimo">Ótimo</option><option value="Bom">Bom</option><option value="Regular">Regular</option><option value="Ruim">Ruim</option>
		</select>
		<br />
		</li>

		<li class="listaColorida">Variedade dos produtos
		<select name="tresConsumo">
		<option selected></option><option value="Ótimo">Ótimo</option><option value="Bom">Bom</option><option value="Regular">Regular</option><option value="Ruim">Ruim</option>
		</select>
		<br />			
		</li>
		</ul>
		</div>
		
		<div class="questoes">
		<h4>Material pemanente (móveis, eletros, etc):</h4><br />
		<ul>
		<li class="listaColorida">Atendimento das demandas
		<select name="umPermanente">
		<option selected></option><option value="Ótimo">Ótimo</option><option value="Bom">Bom</option><option value="Regular">Regular</option><option value="Ruim">Ruim</option>
		</select>		<br />
		</li>

		<li>Qualidade dos produtos
		<select name="doisPermanente">
		<option selected></option><option value="Ótimo">Ótimo</option><option value="Bom">Bom</option><option value="Regular">Regular</option><option value="Ruim">Ruim</option>
		</select>
		<br />
		</li>

		<li class="listaColorida">Variedade dos produtos
		<select name="tresPermanente">
		<option selected></option><option value="Ótimo">Ótimo</option><option value="Bom">Bom</option><option value="Regular">Regular</option><option value="Ruim">Ruim</option>
		</select>
		<br />			
		</li>
		</ul>
		</div>

		<div class="questoes">
		<h4>Contratos:</h4><br />
		<ul>
		<li class="listaColorida">Limpeza
		<select name="umContrato">
		<option selected></option><option value="Ótimo">Ótimo</option><option value="Bom">Bom</option><option value="Regular">Regular</option><option value="Ruim">Ruim</option>
		</select>
		<br />
		</li>

		<li>Vigilância
		<select name="doisContrato">
		<option selected></option><option value="Ótimo">Ótimo</option><option value="Bom">Bom</option><option value="Regular">Regular</option><option value="Ruim">Ruim</option>
		</select>
		<br />
		</li>

		<li class="listaColorida">Manutenção Predial
		<select name="tresContrato">
		<option selected></option><option value="Ótimo">Ótimo</option><option value="Bom">Bom</option><option value="Regular">Regular</option><option value="Ruim">Ruim</option>
		</select>
		<br />			
		</li>
		
		<li>Reprografia
		<select name="quatroContrato">
		<option selected></option><option value="Ótimo">Ótimo</option><option value="Bom">Bom</option><option value="Regular">Regular</option><option value="Ruim">Ruim</option>
		</select>
		<br />						
		</li>
		</ul>
		</div>
		
		<div class="questoes">
		<h4>Atuação da Seção:</h4><br />
		<ul>
		<li class="listaColorida">Atendimento das demandas
		<select name="umAtuacao">
		<option selected></option><option value="Ótimo">Ótimo</option><option value="Bom">Bom</option><option value="Regular">Regular</option><option value="Ruim">Ruim</option>
		</select>
		<br />
		</li>

		<li>Atendimento dos Servidores
		<select name="doisAtuacao">
		<option selected></option><option value="Ótimo">Ótimo</option><option value="Bom">Bom</option><option value="Regular">Regular</option><option value="Ruim">Ruim</option>
		</select>
		<br />
		</li>

		<li class="listaColorida">Atendimento da Chefia
		<select name="tresAtuacao">
		<option selected></option><option value="Ótimo">Ótimo</option><option value="Bom">Bom</option><option value="Regular">Regular</option><option value="Ruim">Ruim</option>
		</select>
		<br />			
		</li>
		
		<li>Avaliação geral
		<select name="quatroAtuacao">
		<option selected></option><option value="Ótimo">Ótimo</option><option value="Bom">Bom</option><option value="Regular">Regular</option><option value="Ruim">Ruim</option>
		</select>
		<br />						
		</li>
		</ul>
		</div>
		
		<div id="observacoes">
		<br /><h4>Outras observações (sugestões, opiniões, etc.):</h4>
		<textarea name="observacao" rows="5" cols="90"></textarea>
		</div>
		
		<div>
		<br />
		<input name="envio" type="submit" value="Enviar">
		<input name="limpar" type="button" value="Limpar Dados">			
		</div>
		</form>
			
	</div>

</body>
</html>

Agora preciso fazer um script que envie as respostas para meu e-mail. Estou estudando como fazer isso usando a função mail() do php.

 

Meu servidor WEB tem Apache 2 + PHP Version 4.4.4-8, rodando em Debian Etch.

 

Até agora sei que a sintaxe da mail() é mail($para, $assunto, $corpo).

 

Estou precisando de ajuda para montar o corpo da mensagem. Alguém pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nos options, tem que ter um value:

<select name="nome">

<option value="bom">BOM!</option>

</select>

 

 

$msg = "nome -".$nome."\n

data -".$data."\n

lala -".$lala."\n

Qualidade dos produtos -".$1.2."\n

e assim vai...

 

Talvez fosse melhor voce fazer um armazenamento num DB ou num arquivo TXT mesmo. Mais prático.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nos options, tem que ter um value:

<select name="nome">

<option value="bom">BOM!</option>

</select>

 

 

$msg = "nome -".$nome."\n

data -".$data."\n

lala -".$lala."\n

Qualidade dos produtos -".$1.2."\n

e assim vai...

 

Talvez fosse melhor voce fazer um armazenamento num DB ou num arquivo TXT mesmo. Mais prático.

Sou iniciante em programação... :( Conhece algum bom manual ou tuto que ensine resolver meu problema usando sua sugestão (base de dados ou documento de texto)?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Meu script ficou assim:

 

<?php 
	 //Remetente
	 $servidor = name;
	 $email = email;
	 $secao = secao;
	 
	 //Respostas
	 $1consumo = 1consumo;
	 $2consumo = 2consumo; 
	 $3consumo = 3consumo;
	 
	 $1permanente = 1permanente;
	 $2permanente = 2permanente;
	 $3permanente = 3permanente;
	 
	 $1contrato = 1contrato;
	 $2contrato = 2contrato;
	 $3contrato = 3contrato;
	 $4contrato = 4contrato;
	 
	 $1atuacao = 1atuacao;
	 $2atuacao = 2atuacao;
	 $3atuacao = 3atuacao;
	 $4atuacao = 4atuacao;
	 
	 $observacao =;
	 
 
	 //Mensagem
	 $para = 'cassius@dominio.com.br';
	 $assunto = 'Pesquisa de opinião';
	 $mensagem = 
	 '<div style="text-style: bold;">
	 Servidor = $servidor\n
	 E-mail = $email\n
	 Seção = $secao\n
	 </div>
	 <br />
	 
	 <h3>Material de consumo:</h3>
	 Atendimento das demandas = $1consumo\n
	 Qualidade dos produtos = $2consumo\n
	 Variedade dos produtos = $3consumo\n
	 <br \>
	 
	 <h3>Material permanente:</h3>
	 Atendimento das demandas = $1permanente\n
	 Qualidade dos produtos = $2permanente\n
	 Variedade dos produtos = $3permanente\n
	 <br \>
	 
	 <h3>Contratos:</h3>
	 Limpeza = $1contrato\n;
	 Vigilância =  $2contrato\n;
	 Manutenção Predial =  $3contrato\n;
	 Reprografia = $4contrato\n;
	 <br \>
	 
	 <h3>Atuação da Seção:</h3>
	 Atendimento das demandas = $1atuacao\n;
	 Atendimento dos Servidores = $2atuacao\n;
	 Atendimento da Chefia = $3atuacao\n;
	 Avaliação geral = $4atuacao\n;'
	 
	 mail($para, $assunto, $mensagem);
	 
 ?>

Agora só falta funcionar... :D

 

Alguma alma caridosa pode me ajudar a corrigí-lo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, vou lhe passar o meu envio de contato, é só adaptar a sua necessidade seguindo a lógica.

 

Este script tem auto-resposta.

 

Abçs.

 

<?php 

// Assunto que você receberá em seu e-mail!
$titulo = "Contato";

// Assunto do e-mail auto resposta que o visitante receberá!
$assunto_r = "$nome, recebemos sua mensagem de contato!";

// Endereço do seu site que aparecerá no e-mail auto resposta!
$url_site = "www.site.com.br";

// Nome da assinatura que aparecerá no e-mail auto resposta!
$nome_ass = "Site de fulano";

// Mensagem que será enviada no e-mail auto resposta!
$resposta = 
"Obrigado $nome por ter entrado em contato conosco.\nEm breve você receberá nosso contato.\n
Este é um e-mail automático, favor não respondê-lo!

Atenciosamente,
$nome_ass

$url_site";

$nome = $_POST["nome"]; //pegando a variavel nome 
$email = $_POST["email"]; // pegando a variavel email
$departamento = $_POST["departamento"]; //pegano a variavel departamento e assim vai... 
$tel = $_POST["tel"];
$cargo = $_POST["cargo"];
$empresa = $_POST["empresa"];
$mensagem = $_POST["mensagem"];
$assunto = $_POST["assunto"];
$setor = $_POST["setor"];
$cel = $_POST["cel"];
$ip = $_SERVER['REMOTE_ADDR']; // Envia o IP do visitante para o seu e-mail!

$enviar .= "De: Contato WEB\n";// Frase que aparecerá no topo da mensagem(email)!
$enviar .= "Para: $setor\n------------------------------------------------------------\n";
$enviar .= "IP registrado: $ip\n";
$enviar .= "Empresa: $empresa\n";
$enviar .= "Nome do contato: $nome\n";
$enviar .= "Departamento: $departamento\n";
$enviar .= "Cargo: $cargo\n";
$enviar .= "Telefone: $tel\n";
$enviar .= "Celular: $cel\n";
$enviar .= "E-mail: $email\n------------------------------------------------------------\n";
$enviar .= "Assunto: $assunto\n\n";
$enviar .= "Mensagem: $mensagem\n";  

$rh="seuemail@email.com.br"// 

$mailto="email@email.com.br";
mail($mailto, $titulo, utf8_decode($enviar), "From: $email"); // utf8 é uma funçaõ para aceitar acentos da lingua portuguesa 
mail($email, $assunto_r, utf8_decode($resposta), "From: $rh"); 
?>
<!-- depois de enviado o email... -->
<script language="JavaScript">alert('A sua mensagem foi enviada com sucesso!');
location.href='index.php';</script>
<!-- retorna para o index.. -->

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então..

 

Esses dois scripts fazem exatamente o que voce quer.

 

É so voce criar os arquivos, testar e fazer um estudo do código.. ta funcionando

 

vamos la.. crie esses dois arquivos..

 

- form.php

- mail.php

 

form.php

<?php
	//isset = Verifica se determinada variavel esta setada. No caso, o bt. 
	if(isset($_POST['bt'])){
		
		//Requisições da entrada do usuario
		$nome = trim($_POST['nome']);
		$email = trim($_POST['email']);
		$texto = nl2br(trim($_POST['texto']));
		
		/** Faz as validações que forem necessárias nas variaveis (nao vou fazer)*/

		//Cria a saida de confirmação do email para o usuario
		echo "<form action='mail.php' method='POST'>";		
		echo 'Confirmação de mensagem<br><br>';
		echo '<b>Nome</b>: '.$nome.'<br>';
		echo '<b>Email</b>: '.$email.'<br>';
		echo '<b>Mensagem</b>: '.$texto.'<br>';
		echo "<input type='hidden' name='nome' value='$nome'>";
		echo "<input type='hidden' name='email' value='$email'>";
		echo "<input type='hidden' name='texto' value='$texto'>";
		echo "<input type='submit' value='Confirmar envio'>";
		echo '</form>';
		
		//Destroe a variavel post bt
		unset($_POST['bt']);
		//Para a execução do script
		exit;
				
	}

?>


<html>
	<head></head>
<body>
	Entre em contato:<br />
	<br />
	
	
	<form action="<?php echo $_SERVER['PHP_SELF'];?>" method='POST'>
	Seu nome: 
		<input type='text' name='nome'><br />
	Seu email: 
		<input type='email' name='nome'><br />
	Mensagem:<br />
		<textarea name='texto' cols='43' rows='4'></textarea><br />

		<button type='submit' name='bt'>Enviar</button><button type='reset'>Limpar</button>

		
</body>
</html>

 

mail.php

<?php

$nome = $_POST['nome']; 
$email = $_POST['email']; 
$para = 'destino@email.com';   //Email destinatario
$mensagem = $_POST['texto']; 
$assunto = "email legal";  //Assunto do email
$header = "De: ". $nome . " <" . $email . ">\r\n"; 

if(mail($para, $assunto, $mensagem, $header)) echo 'Mensagem enviada'; else echo 'Erro';


?>

 

Espero ter ajudado.. http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Atualizei o CSS e o HTML do inicio do post.

 

Meu script ficou assim:

 

<?php 
	//Remetente
	$servidor = name;
	$email = email;
	$secao = secao;
	
	//Respostas
	$umConsumo = $_POST["umConsumo"];
	$doisConsumo = $_POST["doisConsumo"]; 
	$tresConsumo = $_POST["tresConsumo"];
	
	$umPermanente = $_POST["umPermanente"];
	$doisPermanente = $_POST["doisPermanente"];
	$tresPermanente = $_POST["tresPermanente"];
	
	$umContrato = $_POST["umContrato"];
	$doisContrato = $_POST["doisContrato"];
	$tresContrato = $_POST["tresContrato"];
	$quatroContrato = $_POST["quatroContrato"];
	
	$umAtuacao = $_POST["umAtuacao"];
	$doisAtuacao = $_POST["doisAtuacao"];
	$tresAtuacao = $_POST["tresAtuacao"];
	$quatroAtuacao = $_POST["quatroAtuacao"];
	
	$observacao = $_POST["observacao"];
	

	//Mensagem
	$para = 'cassius@dominio.com.br';
	$assunto = 'Pesquisa de opinião';
	$mensagem = 
	"Servidor = $servidor\n
	E-mail = $email\n
	Seção = $secao\n
	<br />
	
	<h3>Material de Consumo:</h3>
	Atendimento das demandas = $umConsumo\n
	Qualidade dos produtos = $doisConsumo\n
	Variedade dos produtos = $tresConsumo\n
	<br \>
	
	<h3>Material Permanente:</h3>
	Atendimento das demandas = $umPermanente\n
	Qualidade dos produtos = $doisPermanente\n
	Variedade dos produtos = $tresPermanente\n
	<br \>
	
	<h3>Contratos:</h3>
	Limpeza = $umContrato\n;
	Vigilância =  $doisContrato\n;
	Manutenção Predial =  $tresContrato\n;
	Reprografia = $quatroContrato\n;
	<br \>
	
	<h3>Atuação da Seção:</h3>
	Atendimento das demandas = $umAtuacao\n;
	Atendimento dos Servidores = $doisAtuacao\n;
	Atendimento da Chefia = $tresAtuacao\n;
	Avaliação geral = $quatroAtuacao\n";
	
	mail($para, $assunto, utf8_decode($mensagem));

	
?>


	<script language="JavaScript">alert('A sua mensagem foi enviada com sucesso!');
	location.href='../formularioLOG.html';</script>;

O trem não dá erro, mas também não funciona... Não recebo o e-mail que o formulário dispara. Ja fiz e refiz o script e nada... :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Parece que preciso fazer alguma mudança no arquivo "/etc/php4/php.ini", alguém sabe me dizer que alteração fazer?

Brother,

Testando localmente você nao vai receber email mesmo.. <_<

 

A nao ser q configure um servidor SMTP de testes.. mas pra que?? O codigo ta funcionando nao ta?? entao..

Poe na internet e seja feliz..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Parece que preciso fazer alguma mudança no arquivo "/etc/php4/php.ini", alguém sabe me dizer que alteração fazer?

Brother,

Testando localmente você nao vai receber email mesmo.. <_<

 

A nao ser q configure um servidor SMTP de testes.. mas pra que?? O codigo ta funcionando nao ta?? entao..

Poe na internet e seja feliz..

 

Caríssimo Gsbad, os testes que fiz foram direto no meu servidor WEB (Debian Etch) e não localmente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O seu servidor tem MTA ???

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.