Send form data to html page

Asked

Viewed 238 times

0

Staff I have a contact form that sends the information to an email.

But I wish instead of sending it to the email, it would generate an html page and send it to her.

That’s possible?

PHP:

<?php

/* Valores recebidos do formulário  */
$arquivo = $_FILES['arquivo'];
$nome = $_POST['nome'];
$replyto = $_POST['replyto']; // Email que será respondido
$mensagem_form = $_POST['mensagem'];
$assunto = $_POST['assunto'];

/* Destinatário e remetente - EDITAR SOMENTE ESTE BLOCO DO CÓDIGO */
$to = "[email protected]";
$remetente = "[email protected]"; // Deve ser um email válido do domínio

/* Cabeçalho da mensagem  */
$boundary = "XYZ-" . date("dmYis") . "-ZYX";
$headers = "MIME-Version: 1.0\n";
$headers.= "From: $remetente\n";
$headers.= "Reply-To: $replyto\n";
$headers.= "Content-type: multipart/mixed; boundary=\"$boundary\"\r\n";  
$headers.= "$boundary\n"; 

/* Layout da mensagem  */
$corpo_mensagem = " 
<strong>Nome:</strong> $nome 
<br><br><strong>Email:</strong> $replyto
<br><br><strong>Assunto:</strong> $assunto
<br><br><strong>Mensagem:</strong> $mensagem_form
";

/* Função que codifica o anexo para poder ser enviado na mensagem  */
if(file_exists($arquivo["tmp_name"]) and !empty($arquivo)){

    $fp = fopen($_FILES["arquivo"]["tmp_name"],"rb"); // Abri o arquivo enviado.
    $anexo = fread($fp,filesize($_FILES["arquivo"]["tmp_name"])); // Le o arquivo aberto na linha anterior
    $anexo = base64_encode($anexo); // Codifica os dados com MIME para o e-mail 
    fclose($fp); // Fecha o arquivo aberto anteriormente
    $anexo = chunk_split($anexo); // Divide a variável do arquivo em pequenos pedaços para poder enviar
    $mensagem = "--$boundary\n"; // Nas linhas abaixo possuem os parâmetros de formatação e codificação, juntamente com a inclusão do arquivo anexado no corpo da mensagem
    $mensagem.= "Content-Transfer-Encoding: 8bits\n"; 
    $mensagem.= "Content-Type: text/html; charset=\"utf-8\"\n\n";
    $mensagem.= "$corpo_mensagem\n"; 
    $mensagem.= "--$boundary\n"; 
    $mensagem.= "Content-Type: ".$arquivo["type"]."\n";  
    $mensagem.= "Content-Disposition: attachment; filename=\"".$arquivo["name"]."\"\n";  
    $mensagem.= "Content-Transfer-Encoding: base64\n\n";  
    $mensagem.= "$anexo\n";  
    $mensagem.= "--$boundary--\r\n"; 
}
    else // Caso não tenha anexo
    {
        $mensagem = "--$boundary\n"; 
        $mensagem.= "Content-Transfer-Encoding: 8bits\n"; 
        $mensagem.= "Content-Type: text/html; charset=\"utf-8\"\n\n";
        $mensagem.= "$corpo_mensagem\n";
}

/* Função que envia a mensagem  */
if(mail($to, $assunto, $mensagem, $headers))
{
    echo "<script>location.href='obrigado.php'</script>";
} 
    else
    {
        echo "<br><br><center><b><font color='red'>Ocorreu um erro ao enviar a mensagem!";
}
?>

HTML:

<!DOCTYPE html>
<html>
<head>
    <META NAME="ROBOTS" CONTENT="NOINDEX">
  <meta charset="UTF-8">
  <title></title>
  <style>
*{
margin: 0;
padding: 0;
box-sizing: border-box;
}
body, html{
width: 100%;
height: 125%;
font-family: sans-serif;
font-size:22px;
line-height: 1.3;
}
.bg_video{
position: fixed; right: 0; bottom: 0;
min-width: 100%; min-height: 100%;
width: auto; height: auto; z-index: -1000;
background: url(URL-FUNDO) no-repeat;
background-size: cover; }
.body{
padding:50px;
background: rgba(0.9);
margin: 0px auto 40px auto;
max-width: 100%;
border-radius: 50px;
}
.body h1{
font-family: Georgia, serif;
font-size:40px;
}
.body p{
margin: 1.6em 0;
}

</style>
  <meta charset="utf-8">
    <link rel="stylesheet" type="text/css" href="estilo.css">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">

</head>
<body">



<form class="form-horizontal" method="POST" action="envia.php" enctype="multipart/form-data">





<body style="color: rgb(0, 0, 0); background-color: transparent;" alink="#000099" link="#000099" vlink="#990099">
<video autoplay="" loop="" poster="URL-FUNDO" class="bg_video"> <source src="video/bg.webm" type="video/webm"> <source src="video/bg.mp4" type="video/mp4"> </source> </source></video>
<div class="cabecalho">
<a id='inicio'></a>


<table
 style="width: 100%; height: 100%; text-align: left; margin-left: auto; margin-right: auto;" border="0" cellpadding="0" cellspacing="0">
  <tbody>
    <tr>
      <td style="height: 100px; text-align: center;"><p>


</p>

    <p>
        <span style="font-family: Arial, Helvetica, sans-serif; color: rgb(51, 51, 51); font-weight: bold;">Nome:</span></big><br />
        <input type="text" required="required" size="40" name="nome" style="font-family: Arial; font-size: 16px">
    </p>

    <p>
        <span style="font-family: Arial, Helvetica, sans-serif; color: rgb(51, 51, 51); font-weight: bold;">Email:</span></big><br />
        <input type="text" required="required" size="40" name="replyto" pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}$" style="font-family: Arial; font-size: 16px">
    </p>

    <p>
        <span style="font-family: Arial, Helvetica, sans-serif; color: rgb(51, 51, 51); font-weight: bold;">Assunto:</span></big><br />
        <input type="text" required="required" size="40" name="assunto" style="font-family: Arial; font-size: 16px">
    </p>

    <p>
        <input type="file" name="arquivo">

    </p>
<p>

<p>
        <span style="font-family: Arial, Helvetica, sans-serif; color: rgb(51, 51, 51); font-weight: bold;">Mensagem:</span></big><br />
    <textarea required="required" name="mensagem" id="texto" cols="40" rows="7" style="font-family: Arial; font-size: 16px"></textarea>
</p>


<p>

     <button type="image" name="Enviar" value="Enviar"><img style="width: 130px; height: auto;" src="../img/enviar.png"></button>

  </p>
</td>
    </tr>
  </tbody>
</table>

</div>

</body>
</html>
  • Send as? HTML via email? Access HTML via an internal system?

  • Instead of sending the form data to the email, send it to an html page.

  • You can’t just send it to HTML, you need to save it somewhere to access this data that can be displayed in an HTML

  • Where can I send that is not an email?

  • Usually a database, but can also save in files

  • Right, if you can I would like you to tell me how to save in files.

  • http://php.net/manual/en/function.file-put-contents.php

Show 2 more comments

2 answers

0

In your form you exchange the action="envia.php" to the page you want to send the form data to. Then you receive this data and enter directly into the page to be displayed.

-1

you can use phpmailer and add an html file to body... here is the project https://github.com/PHPMailer/PHPMailer
github has an example and in this part you insert the path of your html

 /Content
    $mail->isHTML(true);                                  // Set email format to HTML
    $mail->Subject = 'Here is the subject';
    $mail->Body    = 'This is the HTML message body <b>in bold!</b>';
    $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

Browser other questions tagged

You are not signed in. Login or sign up in order to post.