Ir para conteúdo
caelson1@gmail.com

FORMULÁRIO COM ANEXO em PHP

Recommended Posts

Olá...

Estou tentando fazer funcionar um formulário PHP que envia os campos do formulário junto com anexo.

Sou um iniciante em PHP e estou com muita dificuldades.

Quero também incluir mais campos no formulário.

Será que consigo ajuda??

Segue abaixo o script.  Muito obrigado, antecipadamente.


<?php 
$subm = $_POST['frm_ok'];    // Váriavel que indica que o formulário foi submetido 
$name = $_POST['nome'];     // Nome do remetente(Emissor) 
$mail = $_POST['meu email do servidor'];    // Segue o endereço de email do remetente 
$__sj = "Formulário de Contato";    // Informe um assunto para a mensagem 
$__to = $_POST['email que eu quero receber os dados']; // Defina o email do destinatário(Receptor), para mais de um separe-os com vírgula 
// Verifico se o formulário foi submetido 
if(isset($subm)): 
// Descomente a linha abaixo, se você quiser analisar as variáveis que estão sendo passadas pelo formulário via post 
//echo "<pre>",print_r($_POST),"</pre>"; 
// Filtro algumas váriaveis passadas 
$find = "/(content-type|bcc:|cc:)/i"; 
if(preg_match($find, $name) || preg_match($find, $mail)) 
exit("<h3>Sem meta/header inclusões, por favor.</h3>"); 
// Valido o email do remetente, usando expressão regular 
$regex = "^([[:alnum:]]+)([-._]([[:alnum:]]+))*[@]([[:alnum:]]+)([-._]([[:alnum:]]+))*[.]([[:alnum:]]){2}([[:alnum:]])?$"; 
if(isset($mail) && !ereg($regex, $mail)) 
$erro = 1; 
// Mensagem formatada, enviada no corpo do email 
$html = "<!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\" xml:lang=\"pt-BR\" lang=\"pt-BR\"> 
<head> 
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\"> 
<style> 
body     {background:#FFFFFF;} 
a, a:link    {color:#5b6105; text-decoration:none;} 
#tab     {margin:0; padding:0px; width:500px; border:1px solid #8F8E96; padding:10px;} 
#tab tr {background:#F6F6F6; } 
#tab td {color:#000000; font: normal 11px arial, helvetica, sans-serif; border:dashed 1px #DDD; padding:30px;} 
</style> 
</head> 
<body> 
<br /> 
<table border='0' cellspacing='10' cellpadding='0' id='tab' align='center'> 
<tr> 
<td> 
<b>Nome:</b> {$name}<br /> 
<b>Email:</b> {$mail}<br /> 
<b>Telefone:</b> {$_POST['telefone']}<br /><br /> 
<b>Mensagem:</b> {$_POST['mensagem']}<br /> 
</td> 
</tr> 
</table> 
<br /> 
</body> 
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites
<?php
/*
	VOCÊ PRECISARÁ FAZER O DOWNLOAD DO PHPMAILER E INCLUÍ-LA NO NESTE ARQUIVO.
    SUGIRO TAMBÉM, DAR UMA ESTUDADA NA DOCUMENTAÇÃO DO MESMO.
    TUDO E ONDE BAIXAR EM: https://github.com/PHPMailer/PHPMailer
*/

// CAPTURANDO DADOS DO FORMULÁRIO ADD OS ISSET DO POST
   $nome      = trim(ucwords(preg_replace('/\s\s+/', ' ',($_POST['nome-curriculo']))));
   $eemail     = trim(strtolower(preg_replace('/\s\s+/', ' ',($_POST['email-curriculo']))));
   $telefone  = trim(preg_replace('/\s\s+/', ' ',($_POST['telefone-curriculo'])));
   $cidade    = trim(preg_replace('/\s\s+/', ' ',($_POST['cidade-curriculo'])));
   $assunto   = trim(preg_replace('/\s\s+/', ' ',($_POST['assunto-curriculo'])));
   $mensagem  = trim(preg_replace('/\s\s+/', ' ',($_POST['mensagem-curriculo'])));
   $ip        = $_SERVER['REMOTE_ADDR'];
   $navegador = $_SERVER['HTTP_USER_AGENT'];

   $files = $_FILES["file"];
   $file = $files;

   try{
   // Inicia a classe PHPMailer
   $mail = new PHPMailer(true);
   
      // Define os dados do servidor e tipo de conexão
      // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
      //$mail->SMTPDebug = SMTP::DEBUG_SERVER; // Enable verbose debug output
      $mail->CharSet = "UTF-8";
      $mail->setLanguage('br');
      $mail->Host = "mail.host.com.br"; // Endereço do servidor SMTP
      $mail->Username = 'emaildahospedagem@host.com.br'; // Usuário do servidor SMTP
      $mail->Password = 'senha'; // Senha do servidor SMTP
      $mail->Port = 587; // SMTP 465 - IMAP 993 - 587
      $mail->isSMTP();
      $mail->SMTPAuth = true; // Usa autenticação SMTP? (opcional)
      $mail->SMTPSecure = 'tls';
      //$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; // Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS`
      $mail->Priority = 1; 
      // Define o remetente
      // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
      $mail->From = ("email@email.com.br"); // E-mail do usuário
      $mail->FromName = $nome; // Seu nome
      // Define os destinatário(s)
      // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
      $mail->AddAddress($eemail);
      //$mail->AddCC('ciclano@site.net', 'Ciclano'); // Copia
      //$mail->AddBCC('fulano@dominio.com.br', 'Fulano da Silva'); // Cópia Oculta
      // Define os dados técnicos da Mensagem
      // =-=-=-=-=-=-=-=-=-=-=1-=-=-=-=-=-=-=-=-=
      $mail->IsHTML(); // Define que o e-mail será enviado como HTML
      //  $mail->CharSet = 'iso-8859-1'; // Charset da mensagem (opcional)
      // Define a mensagem (Texto e Assunto)
      // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
      $mail->Subject = $assunto; // Assunto da mensagem
      //Read an HTML message body from an external file, convert referenced images to embedded,
      //convert HTML into a basic plain-text alternative body
      // $mail->msgHTML(FILE_USE_require_once_ATH('contents.html', 1));
      // CORPO DO EMAIL
      // FORMATO HTML
      $mail->Body = "<h4><p>Nome: {$nome}.<br><br>Email: {$eemail}<br><br>Telefone: {$telefone}.<br><br>Cidade: {$cidade}.<br><br>Assunto: {$assunto}.<br><br>Mensagem: {$mensagem}</p><p><h6><br>IP do remetente: {$ip}<br>Navegador do remetente: {$navegador}</h6></p></h4>";

      // FORMATO SEM HTML
      $mail->AltBody = "Nome: {$nome}" . "\n" . "\n" . "Email: {$eemail}" . "\n" . "Telefone: {$telefone}" . "Cidade: {$cidade}" . "\n" . "Mensagem: {$mensagem}" . "\n" . "IP do remetente: {$ip}" . "\n" . "Navegador do remetente: {$navegador}";
      // Define os anexos (opcional)
      // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
      $mail->AddAttachment($file['tmp_name'], $file['name'], 'base64');  // Insere um anexo
      //print_r($_FILES);echo"<br>";print_r($files);
      
      // Envia o e-mail
      $mail->Send();
      // Limpa os destinatários e os anexos
      $mail->ClearAllRecipients();
      $mail->ClearAttachments();
      // FIM DO ENVIO DE EMAIL
      
   }catch (Exception $e)
      echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
   }
?>

https://github.com/PHPMailer/PHPMailer

 

Postei um código pq tive grandes e misteriosos problemas para anexar, mas consegui desta maneira. Tirei muitas adaptações que tinha, mas com isso você já consegue enviar com anexo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.