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?
– Costamilam
Instead of sending the form data to the email, send it to an html page.
– F. Júnior
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
– Costamilam
Where can I send that is not an email?
– F. Júnior
Usually a database, but can also save in files
– Costamilam
Right, if you can I would like you to tell me how to save in files.
– F. Júnior
http://php.net/manual/en/function.file-put-contents.php
– Costamilam