Ir para conteúdo

POWERED BY:

Arquivado

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

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

×

Informação importante

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