Ir para conteúdo
Fórum Script Brasil
  • 0

script de formulario com formatacao HTML externa


marinalimeira

Pergunta

Como é possivel ao preencher um formulario do site, os dados são encaminhados por email porem com uma formatacao HTML, isto é eu monto o corpo do email com um layout agradavel, com tabelas e destaques no padrão HTML, por exemplo modelo_email.html.

As variaveis do formulario seriam assim substituidas pelos respectivas posicoes no arquivo modelo_email.html.

Assim ao receber o email, recebemos com total formatacao agradavel. E melhor se precisar editar o layout da formatacao, fica facil pois simplesmente so abrir no frontpage o arquivo modelo_email.html e altera-lo.

Como posso fazer isso em PHP ? Alguma sugestao de codigo PHP vai la pegar no modelo e substitui, por exemplo:

encontrando o campo #$%NOME%$# e substitui pelo NOME digitado pelo formulario, assim por diante, assim não preciso fazer a formatacao do email no mesmo codigo PHP.

Obrigada

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

O que você pode fazer é colocar todo o conteúdo desse arquivo "modelo_email.html" em uma variável e nos lugares pré-determinados chamar as variáveis, por exemplo:

$nome = $_POST['nome'];
$email = $_POST['email'];
$texto = $_POST['texto'];

$corpo_email = '<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
Nome: '.$nome.'

E-mail: '.$email.'

Texto: '.$texto.'
<body>
</body>
</html>';

Caso você realmente deseje deixar separado o arquivo com o corpo do e-mail, basta ler o conteúdo dele com file_get_contents e após isso dar um eval para que as variáveis sejam reconhecidas como tal.

Link para o comentário
Compartilhar em outros sites

  • 0

desculpe não entendi sobre o que falaram do meu coracaozinho.. não pode colocar????

queridos, sobre a questao é melhor deixar como arquivo externo assim o script de envio fica fixo e posso enviar para cada email um formato diferente...

porem não sei como ao ler ele conseguira fazer os encaixes dos campos... to perdidaaa sou meio iniciante no php

obrigadaa

Link para o comentário
Compartilhar em outros sites

  • 0

Conforme eu disse, caso queira usar a idéia do arquivo externo, use o file_get_contents (http://br.php.net/file_get_contents) para ler o conteúdo do arquivo, e o eval (http://br.php.net/eval) para executar a string como arquivo php. Tente, caso não consiga poste o código da maneira como ficou e a gente ajuda a terminar.

Link para o comentário
Compartilhar em outros sites

  • 0

Para facilitar coloquei tudo direto com o str_replace:

arquivo externo:

<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
Nome: #NOME#
<br />
E-mail: #EMAIL#
<br />
Texto: #TEXTO#
<body>
</body>
</html>
</body>
</html>
php
<?php
$nome = 'Fulano';
$email = 'ee@ee.com';
$texto = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce purus elit, mattis non cursus at, posuere sed elit. Cras et quam mauris. Pellentesque lectus ipsum, venenatis at pellentesque eu, iaculis sit amet turpis. Aenean quis turpis ac lectus consectetur egestas nec volutpat neque. Cras eleifend elit sed velit varius lacinia. Cras cursus egestas quam, nec iaculis velit scelerisque non. Maecenas sed ligula augue. Integer pharetra gravida sapien quis consectetur. Vivamus ornare placerat lorem, et consectetur enim mollis consequat. In hac habitasse platea dictumst. Sed nibh risus, imperdiet eu fermentum ac, lobortis nec arcu.

Proin auctor ultrices felis sit amet lobortis. Aenean a varius massa. Maecenas vehicula luctus diam a laoreet. Integer eget scelerisque erat. Sed sagittis venenatis nisi id egestas. Proin tempus fringilla odio, eget tristique dui blandit vel. Mauris vulputate iaculis facilisis. Proin sem ipsum, lacinia at aliquam eget, dignissim in nisl. Etiam eget enim leo. Vivamus id nisi enim. Sed at purus venenatis nisi cursus porta. Integer iaculis adipiscing mauris a porttitor. Mauris at nisi vitae ligula vestibulum iaculis. Donec consequat arcu et magna pretium ac pretium turpis bibendum. Suspendisse eu magna nec purus porttitor aliquam. Fusce ullamcorper consequat nunc, quis varius eros convallis feugiat. Proin gravida enim et orci commodo nec ullamcorper nibh vestibulum. Sed non tortor varius libero convallis gravida. Proin vel ipsum felis. In vulputate libero eu ante elementum ultricies. ';

$corpo_email = file_get_contents('arquivo.html');
$corpo_email = str_replace('#NOME#',$nome,$corpo_email);
$corpo_email = str_replace('#EMAIL#',$email,$corpo_email);
$corpo_email = str_replace('#TEXTO#',$texto,$corpo_email);

echo $corpo_email;
?>

Link para o comentário
Compartilhar em outros sites

  • 0

legal esta ideia do str_replace.. boa ..

mas se eu escolher o eval e tiver os seguintes exemplos:

arquivo conteudo.html:

<html>
<body>
<table width="200" border="1">
  <tr>
    <td>NOME: </td>
    <td><strong> $nome </strong></td>
  </tr>
  <tr>
    <td>E-MAIL: </td>
    <td>$email </td>
  </tr>
  <tr>
    <td>MENSAGEM:</td>
    <td>$mensagem</td>
  </tr>
</table>
<p><br>
</p>
</body>
- arquivo principal.php:
<?php
$nome = "FERNANDA";
$email = 'fernanda@hotmail.cooom';
$mensagem = 'Esta mensagem é bem longa bla bla bla.';
$body = "";
$body = file_get_contents('conteudo.html');

eval("\$body = \"$body\";");
echo $body . "\n";

?>

A ideia que a saida sera o conteudo do arquivo HTML substituida pelas variaveis.

Mas não funciona, por que ??

obrigada

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...