Ir para conteúdo

POWERED BY:

Arquivado

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

marina limeira

Formulario com formatacao

Recommended Posts

Ola amigos estou perdida pois estou iniciando em PHP e conto com a sua ajuda.

 

É possivel ao preencher um formulario de um site, os dados sao encaminhados para o email do visitante de acordo com uma formatacao do arquivo1.html e ao mesmo tempo vai para o dono do site os dados do formulario completo seguindo a formatacao de tabela arquivo2.html.

 

Alguem ja fez isso?

 

Obrigada

 

Marina

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Marina, é possível sim.

 

Um exemplo bem rápido, não sei se você possue alguma noção de envio de informações por formulário, mas digamos q sim ^_^ .... você possui o formulário, os dados desse formulário então podem ser enviados via POST para o arquivo .php, recebendo todos os dados necessários, ai no arquivo .php você executa duas vezes a função mail, cada um para um destinatário e com uma mensagem:

 


//PRO VISITANTE LEMBRANDO QUE PROVAVELMENTE O EMAIL DELE VOCÊ RECEBERÁ POR POST
$to = "visitando@email.com";
$subject = "Mensagem pro visitante!";
$html = "
 <html>
  <body>
    Aqui vai o conteúdo HTML 1!
  </body>
 </html>";
$headers = "Content-type: text/html; charset=iso-8859-1\r\n";

 if (mail($to, $subject, $html, $headers)) {
   echo "Email enviado com sucesso !";
 } else { 
  echo "Ocorreu um erro durante o envio do email.";
 }

//PRO DONO DO SITE
$to = "donodosite@email.com";
$subject = "Mensagem pro dono!";
$html = "
 <html>
  <body>
    Aqui vai o conteúdo HTML 2!
  </body>
 </html>";
$headers = "Content-type: text/html; charset=iso-8859-1\r\n";

 if (mail($to, $subject, $html, $headers)) {
   echo "Email enviado com sucesso !";
 } else { 
  echo "Ocorreu um erro durante o envio do email.";
 }

Fiz isso rapidinho, pode ver isso mais afundo em artigos facilmente encontrados no google:

 

Enviando email 1

 

Enviando email 2

 

Enviando email 3

 

Alguns com exemplo de formulário. Espero ter ajudado.

 

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

é isso sim.. mas como o arquivos tanto para envio para ambos destinos sao extensamente formatados. Gosto de deixar o modelo num formato externo (arquivo externo) entendeu?

Assim formataria no frontpage um visual com imagens, links, etc.. em cada um dos modelos arq1.html e arq2.html

e o codigo PHP vai la pegar o modelo e substitui, por exemplo:

encontrando o campo #$%NOME%$# no arq1.html que é o modelo substitui pelo NOME digitado pelo formulario, etc...

 

e como hoje em dia para enviar dados necessita de dados do servidor, como inserir dados de porta, e conta de envio?

 

Obrigada

Márina

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que não será possível ele substituir as STRINGS com os arquivos estando em seu sistema e o PHP no servidor.

 

O que você pode fazer é pegar esse 'template' de email e passar pra função mail() com o envio de e-mail no formato HTML, onde la no PHP você poderá substituir as variáveis pelos seus valores! Aí sim vai funcionar! http://forum.imasters.com.br/public/style_emoticons/default/yes.gif

 

- Envio de e-mail com autenticação SMTP

- Outro link

 

Boa sorte! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha, acho que a função eval vai te ajudar.

 

Grave o HTML com as variáveis que o PHP vai ler no banco de dados. Depois use a função eval para ler ao enviar o e-mail.

 

Aqui tem um tópico que vai te dar uma luz...

http://forum.imasters.com.br/index.php?/topic/349558-problema-com-aspas-simples-e-duplas/

http://br.php.net/eval

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Legal, o exemplo do Diego de mandar como nao spam esta ok...

Porem ainda nao sei como usar o modelo html para entrar no "body" do email.

 

é muito mais facil fazer no script PHP que o formulario chama a troca tanto em tempo real.. e tambem um outro exemplo usando o banco de dados mysql como o carlos disse mas que nao tenho ideia como :(

alguma sugestao?

obrigada

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá, eu novamente :)

 

desculpe não ter solucionado seu problema anteriormente, tipo eu conheço o seguinte codigo:

 

<?php
    ob_start();
    include "sua_pagina.html";
    $conteudo = ob_get_contents();
    ob_end_clean();

    mail($para,$assunto,$conteudo,"Content-type: text/html\r\n");
?>

 

oq ele faz?? Segundo achei: "Esse código faz com que o conteúdo HTML da página "sua_pagina.html" (que também poderia ser um PHP, por exemplo) seja transferido para o buffer $conteudo (a função ob_start() inibe a saída do buffer e então o conteúdo pode ser capturado pela função ob_get_contents()). Daí então você envia pela função mail(). O último parâmetro citado faz com que a função envie a mensagem em formato HTML."

 

Talvez você possa encaixar isso no seu código pra enviar o email, passa as variaveis do formulario para o template.html e ai joga nesse codigo, irá enviar como a página é ;)

 

Desculpe se não consegui ajudar novamente hehehe

Compartilhar este post


Link para o post
Compartilhar em outros sites

Baseado no que o André Gusmão falou:

http://www.scriptbrasil.com.br/forum/lofiversion/index.php/t66737.html

 

Uma outra coisa que você poderia utilizar seria algo do tipo assim (Exemplo 4 do PHP.NET/MAIL):

<?php
/* Destinatário */
$to  = "mary@example.com" . ", " ; // Observe a vírgula
$to .= "kelly@example.com";

/* assunto */
$subject = "Birthday Reminders for August";

/* mensagem */
$message = '
<html>
<head>
<title>Birthday Reminders for August</title>
</head>
<body>
<p>Here are the birthdays upcoming in August!</p>
<table>
<tr>
 <th>Person</th><th>Day</th><th>Month</th><th>Year</th>
</tr>
<tr>
 <td>Joe</td><td>3rd</td><td>August</td><td>1970</td>
</tr>
<tr>
 <td>Sally</td><td>17th</td><td>August</td><td>1973</td>
</tr>
</table>
</body>
</html>
';

/* Atenção se você pretende inserir numa variável uma mensagem html mais
complexa do que essa sem precisar escapar os carateres
necessários pode ser feito o uso da sintaxe heredoc, consulte tipos-string-sintaxe-heredoc */

/* Para enviar email HTML, você precisa definir o header Content-type. */
$headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

/* headers adicionais */
$headers .= "To: Mary <mary@example.com>, Kelly <kelly@example.com>\r\n";
$headers .= "From: Birthday Reminder <birthday@example.com>\r\n";

$headers .= "Cc: birthdayarchive@example.com\r\n";
$headers .= "Bcc: birthdaycheck@example.com\r\n";

/* Enviar o email */
mail($to, $subject, $message, $headers);
?>

 

Neste caso, você montaria um código HTML para cada pessoa que iria receber os dados do formulário.

 

Boa sorte! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal

 

como preciso de arquivos independentes para melhor organizar as atualizacoes.

 

Ate tentei a sugestao mas esta ficando muito complexo...

Teriam 3 arquivos (1 HTML de formatacao dos dados para o dono do site, 1 HTML de formatacao de dados para o visitante, 1 PHP que serve para enviar os emails formatados com os 2 arquivos correspondentes)

 

O script.PHP (que serve para mandar email lendo no body estes arquivos HTML)

fiz em ASP e deu certo e preciso fazer um similar em PHP:]

 

em asp..
.. configuracoes do email em ASP

leitura dos dados do formulario:
...
f_nome 			= Ucase(request.form("Nome"))
f_sexo 			= request.form("Sexo")
f_estado_civil 		= request.form("EstadoCivil")
...

depois eu Cria-se o objeto FSO
Set Obj_FSO = Server.CreateObject("Scripting.FileSystemObject")
Set Obj_Template = Obj_FSO.OpenTextFile(Server.MapPath("tabela.asp"), 1)
    Str_Template = Obj_Template.ReadAll
Obj_Template.Close
Set Obj_Template = Nothing
Set Obj_FSO = Nothing

Str_Final = Replace(Str_Template,"#$%NOME%$#", f_nome)
Str_Final = Replace(Str_Final,"#$%---%$#",f_sexo)
...
e este FSO ASP envia para o dono

teria algo semelhante em PHP ??

 

Marina

Compartilhar este post


Link para o post
Compartilhar em outros sites

Abrir um arquivo seria o fopen();

 

Ler um arquivo fread();

 

A função pra dar um replace no texto, pode ser o preg_replace();

 

O resultado disso você pode armazenar numa variável e jogar as informações na função mail();

 

Boa sorte! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

estive pensando...

se colocar os dados em um banco de dados do mysql e depois ler para enviar?

Quais seriam os parametros para gravar e ler para enviar? Se alguem tiver alguns exemplos pois estou bem iniciante no PHP

obrigada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha, talvez esta matéria te ajude. Usando ob_start e afins...

http://viniciuswebmaster.wordpress.com/2009/08/11/master-pages-em-php-–-funcao-ob_start/

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para fazer cadastros no MySQL, você pode usar o mysql_query(); com o comando de INSERT no SQL.

 

um exemplo rápido de cadastro:

CADASTRAR.PHP

<?php
include('conexao.php');

$nome = "Diego Macêdo";
$cidade = "Maceió";

$inserir = "INSERT INTO `usuario` (`id`, `nome`, `cidade`) VALUES (NULL, '$nome', '$cidade');";

if(mysql_query($inserir)){
  echo "Cadastro feito com sucesso!";
}else{
  die("Erro ao cadastrar: ". mysql_error());
}

mysql_close();
?>

 

LER_DADOS.PHP

<?php
include('conexao.php');

$nome = "Diego Macêdo";
$cidade = "Maceió";

// Efetua consulta no MySQL
$query_rs_usuarios = "SELECT * FROM usuarios ORDER BY `nome` ASC;";
$rs_usuarios = mysql_query($query_rs_usuarios) or die(mysql_error());
$row_rs_usuarios = mysql_fetch_assoc($rs_usuarios);

?>
<table width="100%" border="1">
 <tr>
   <td>ID</td>
   <td>NOME</td>
   <td>CIDADE</td>
 </tr>
<?php
do {
 echo "<tr>";
 echo "<td>".$row_rs_usuarios['id'];."</td>";
 echo "<td>".$row_rs_usuarios['nome'];."</td>";
 echo "<td>".$row_rs_usuarios['cidade'];."</td>";
 echo "</tr>";
}while($row_rs_usuarios = mysql_fetch_assoc($rs_usuarios));

mysql_close();
?>

 

Acho que isso vai te ajudar a ter uma noção de como funciona pra poder utilizar as outras funções anteriores e começar a "brincar" com o código.

 

Esepero ter ajudado, boa sorte! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

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.