Ir para conteúdo

POWERED BY:

Arquivado

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

Jose Brito

Enviar dados de formulário formatados em PHP para email

Recommended Posts

Primeiramente boa noite,

Gostaria de saber como poderia proceder , para enviar os dados de um formulário que criei para um e-mail mas dái vem o problema

 

Já consegui fazer parte da encrenca , criei a programação em php e já consigo enviar via mail mas queria tudo formatado em html.
Com os dados que pego em php queria montar os mesmos em uma tabela bonitinha para melhor visualização no e-mail que vai receber as mensagens

 

Caso não tenham entendido minha dúvida tento me explicar melhor :D

 

<?php
$mail = $_POST['email'];
/*$subject = "".$_POST['subject'];*/
$to = "difyca@hotmail.com";
$subject = "Consulta de Quartos - WebSite Hotel Xaréu";
$headers = "De: contato@hotelxareubatuba.com.br\n";
$message .= "Disponibilidade de quartos\n";
$message .= "\nCheck in: " . $_POST['checkin'];
$message .= "\nCheck out: " . $_POST['checkout'];
$message .= "\nAdultos: " . $_POST['adultos'];
$message .= "\nCrianças de 2 a 10 anos: " . $_POST['crianca2a10anos'];
$message .= "\nCrianças de 0 a 2 anos: " . $_POST['crianca0a2anos'];
$message .= "\nTipo de Quarto: " . $_POST['quartos'];
$message .= "\nNome: " . $_POST['nome'];
$message .= "\nEmail: " . $_POST['email'];
//Se enviar email dá ok.
sentOk = mail($to,$subject,$message,$headers);
}
?>

Perdão se é algo fácil de resolver , tentei procurar e ainda não encontrei no fórum o que desejo.
O que desejo é que chegue no e-mail assim :
TESTE-FORM.jpg

abaixo de cada texto das colunas queria que exibisse os dados que obtive via variaveis php , mas gostaria desse resultado formatado no email para uma facil leitura (Tipo aqueles anúncios de grandes lojas e afins)
tentei por "echo" mas chega no email da seguinte forma :

email-form-fail.jpg

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta assim fera:

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

No $message você tem que usar um string assim:

$message = '<html> conteudo </html>';  

Você também pode chamar o arquivo em html, evitando uma poluição no seu código.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Irei tentar assim que possível , trabalho até 00:00 depois do trampo que me atrevo a brincar de desenvolvedor :D

 

na questão do conteúdo devo montar a tabela e por as variaveis em php eu aprendi a chamar da forma <?php echo $variavel> seria assim ?

 

Forte abraço e obrigado por dedicar seu tempo a me ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Irei tentar assim que possível , trabalho até 00:00 depois do trampo que me atrevo a brincar de desenvolvedor :D

 

na questão do conteúdo devo montar a tabela e por as variaveis em php eu aprendi a chamar da forma <?php echo $variavel> seria assim ?

 

Forte abraço e obrigado por dedicar seu tempo a me ajudar.

 

Eu acho que não vai dar certo se você enviar um arquivo em php. Tenta e me diz... No seu caso, uma opção talvez viável, é abrir essa página em php e enviar apenas o resultado final (código html). Abra a página .php em seu navegador e exiba o código, lá vai estar o resultado de todos os seus comando em php. Talvez alguém tenha uma opção melhor...

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro masi quero agradecer pelo $ header ^^ , agora vem a tabela formatada em html mas ainda não consegui inseriar as variaveis para ficar na tabela com o valor de escolha.

 

Código

		<?php
						$mail = $_POST['email'];

						/*$subject = "".$_POST['subject'];*/
						$to = "difyca@hotmail.com";
						$subject = "Consulta de Quartos - WebSite Hotel Xaréu";
						$headers  = 'MIME-Version: 1.0' . "\r\n";
						$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
						$message = '<html><table width="752" border="0" align="center">
  <tr>
    <td width="62">Check-In</td>
    <td width="73">Check-Out</td>
    <td width="55">Adultos</td>
    <td width="94">Tipo de quarto</td>
    <td width="128">Crianças 0 a 2 anos</td>
    <td width="129">Crianças 2 a 10 anos</td>
    <td width="57">Nome</td>
    <td width="120">E-mail</td>
  </tr>
  <tr>
    <td><?php echo $checkin ?></td>
    <td><?php echo $checout ?></td>
    <td><?php echo $adultos ?></td>
    <td><?php echo $quarto ?></td>
    <td><?php echo $crianca0a2anos ?></td>
    <td><?php echo $crianca2a10anos ?></td>
    <td><?php echo $nome ?></td>
    <td><?php echo $email ?></td>
  </tr>
</table> </html>';

Estou pesquisando e aprendendo outras coisas conforme pesquiso , encontrei problemas semelhantes mas ainda não consegui me beneficiar das soluções.

Aonde estou errando ? Existe erro ou existe uma insistência de algo que não é possível fazer como desejo fazer ? hehe :D

 

Ah e explicando melhor eu não queria enviar o arquivo PHP , queria mandar o html rsrs.

 

Forte abraço e continuo aqui nos estudos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro masi quero agradecer pelo $ header ^^ , agora vem a tabela formatada em html mas ainda não consegui inseriar as variaveis para ficar na tabela com o valor de escolha.

 

Já fico feliz por te ajudado. Até onde eu sei é impossível enviar um email com conteúdo (no seu caso variáveis) em php. Até mesmo porque, os provedores de email não exibiram o conteúdo do página php. Isso nos leva a solução que eu deixei no post anterior. Qual é a solução?! Simples, você vai pegar apenas aquilo que é exibido pela página em .php. Como assim?! Quando abrimos uma página .php no nosso navegador o resultado é um conteúdo totalmente em html. Simplificando mais ainda para a sua compreensão, PHP processa as informações (variáveis) e retorna em formato de HTML para o usuário. O que você precisa é pegar esse resultado em HTML e envia-lo.

 

Me corrijam se falei alguma bobagem. :3

Compartilhar este post


Link para o post
Compartilhar em outros sites
$message = "<tr>
    <td width=\"62\">Check-In</td>
    <td width=\"73\">Check-Out</td>
    <td width=\"55\">Adultos</td>
    <td width=\"94\">Tipo de quarto</td>
    <td width=\"128\">Crianças 0 a 2 anos</td>
    <td width=\"129\">Crianças 2 a 10 anos</td>
    <td width=\"57\">Nome</td>
    <td width=\"120\">E-mail</td>
  </tr>
  <tr>
    <td>$checkin</td>
    <td>$checout</td>
    <td>$adultos</td>
  </tr>
</table> </html>";

Tenta ae, vai funcionar.

 

Viajei totalmente na sua ideia, apenas agora consegui entender o que você queria. Desculpa pela má interpretação, acontece... De qualquer forma, pegar o resultado de uma página também da certo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Jovem já tentei dessa forma e no e-mail chega so as variaveis mesmo rsrs $variavel1 mas a tabela fica montada bonitinha :D.

 

Gostaria de saber se conseguiria criar a pagina a parte e enviar os dados já interpretados pelo PHP.

 

Tipo no email vem a tabela em HTML e abaixo dos campos que tem suas variaveis a variavel vem como $nomedavariavel queria os dados . Seria possivel enviar para um arquivo e esse arquivo ja interpretado ser enviado via e-mail ?

Me falaram sobre o MOD_PERL que faria o que quero (que basicamente é mandar conteudo de um link html , semelhante aquelas propagandas em massa de lojas como MAGAZINELUIZ , AMERICANAS hotelurbano e afins.)

 

EDIT!

 

Caso não tenha explicado as variaveis vem de um formulario com seus respectivos campos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Jovem já tentei dessa forma e no e-mail chega so as variaveis mesmo rsrs $variavel1 mas a tabela fica montada bonitinha

 

Você definiu as variáveis fora da string? Exemplo:

$checkin = '20'; 

$message = "
O valor do checkin foi $checkin ";

Aqui usando o phpmailer funcionou perfeitamente.

 

Gostaria de saber se conseguiria criar a pagina a parte e enviar os dados já interpretados pelo PHP.

 

Tenta isso:

// envio de pagina interpretada.
// código php para o envio, lembre-se de por backslash onde precisar.
// todos os arquivos precisam estar na pasta para serem abertos pelo seu servidor apache.
// Faça as alterações de endereço de acordo com o necessário para o funcionamento do código.

<?php

$codigo_php = '<?php 

$html = "";

$teste = "TESTE do MASI";
$checkin = "pronto";
$checout = "pronto2";
$adultos = "pronto3";

$html .= "
<table width=\"400px\" border=\"1px\">
<tr>
    <td width=\"62\">Check-In</td>
    <td width=\"73\">Check-Out</td>
    <td width=\"55\">Adultos</td>
	<td width=\"55\">Teste</td>

</tr>
<tr>
	<td> $checkin </td>
    <td> $checout </td>
    <td> $adultos </td>
	<td> $teste </td>
</tr>
</table>
";

echo $html;

?>';

// criando/abrindo arquivo ou substituindo existente.
	$f = fopen("teste.php", "w+");
	// escrevendo no arquivo teste.php o conteudo da variavel $codigo_php
	fwrite($f, $codigo_php); 
	
// pegando resultado interpretado.
$conteudo = file_get_contents('http://127.0.0.1/teste.php');

// mostrando conteudo intepretado.
echo $conteudo;
$message = $conteudo;

?>

Você já esta conseguindo enviar o email em html, não tem necessidade de usar o MOD_PERL. O seu problema é fazer a interpretação da parte em php...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tento logo que possível , as variáveis eu estou puxando do formulario que tem na página , criei uma especie de orçamento de reserva pro hotel que estou trabalhando como recepcionista.

 

Devo informar as variáveis novamente ?

Por exemplo no form o campo checkout quando eu envio via email como texto normal vai com o valor da data selecionada pelo usuario no campo $checkout e quando tento utilizar html ele vai sem valor escolhido me entregando na tabela apenas a escrita $checkout

 

devo informar fora do string $messagem "conteudo html qu equero com tabela" a variavel checkout como $checkout = "checkout"?

pois da forma que você vc sugeriu masi eu teria que deixar um valor da variavel sendo que a intenção é coletar o dado via escolha do usario

 

Esse projeto está em segredo os donos ainda não sabem, como escutei eles reclamarem da atual gerencia do website deles que deixou o site a deriva me atrevi a fazer um mais elaborado e irei mostrar a eles, só me falta terminar isso pois o restante já esta funcional no apache local ^^

 

Nesse formulário tem os campos que preciso dai chamo eles no php . (O formulário possui os campos de check-in , checkout e demais campos

 

Até da certo chega em texto puro no meu e-mail , mas queria com tabela pois o próximo passo vai ser criar um check-in on-line para adiantar o lado de nós recepcionistas , cujo o qual será impresso e vindo em tabela vai ser de grande valia.

 

Irei testar e volto com os resultados .


Um exemplo de como planejo o pré-checkin http://www.metropolitanhotel.com.br/precheckin/

tendo como exemplo já fiz o formulário para orçamento das reservas esse ultimo sendo o danado que está me dando trabalho.
Trabalho por quÊ estou querendo aprender mais e estando afim de dar um ar profissional pois o formulario e envio já esta funcional em texto.



utilize o PHPMailer uma class bem interessante.

Vou pesquisar a respeito também .

E quero agradecer a todos por me aturarem nessa aventura :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seria interessante fazer de duas maneiras uma indo para o banco de dados, podendo também neste caso no banco, ir o IP, e data + hora.

 

e via e-mail apenas as informações do seu formulário.

O e-mail com PHPMailer e autênticado ou seja seguro.

 

Um vídeo interessante na utilização do PHPMailer

 

http://www.upinside.com.br/video-aulas/php/enviando-e-mail-autenticado-com-phpmailer

 

 

Se esse post lhe ajudou, coloque como resolvido e me der um ponto positivo de reputação.

Caso contrario, deixa abaixo o erro, dúvida e todas as informações do erro, código para assim eu ou outros membros tenta ajuda-lo.

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.