Jump to content
teteuvec

Problemas ao enviar anexo e informações do formulário via e-mail

Recommended Posts

Prezados boa noite.
Estou tendo problema em enviar anexo e informações do formulário via e-mail. Envia somente a informação de celular. Alguém pode dar uma luz no que está errado? Preciso enviar o email com/sem anexo e gravar as informações do formulário no banco de dados.

<?php
header('Content-Type: text/html; charset=utf-8');

// Inclui o arquivo que faz a conexão ao MySQL
include('Connections/commercial.php');

mysql_query("SET NAMES 'utf8'");
mysql_query('SET character_set_connection=utf8');
mysql_query('SET character_set_client=utf8');
mysql_query('SET character_set_results=utf8');

// Manipulamos as variáveis para evitar problemas com aspas e outros caracteres protegidos do MySQL
$hoje_tmp = getdate();
$email_from = $_POST["email"];
$cellphone = $_POST["cellphone"];
$consuption = $_POST["consuption"];
$cep = $_POST["cep"];
$product = $_POST["product"];
$roof = $_POST["roof"];
$assunto = $_POST["subject"];
$client = $_POST["name"];
$email = "automatic@automatic.com.br";

//pego os dados enviados pelo formulario
$arquivo = isset($_FILES["arquivo"]) ? $_FILES["arquivo"] : FALSE;
if(file_exists($arquivo["tmp_name"]) and !empty($arquivo)){
$fp = fopen($_FILES["arquivo"]["tmp_name"],"rb");
$anexo = fread($fp,filesize($_FILES["arquivo"]["tmp_name"]));
$anexo = base64_encode($anexo);
fclose($fp);
$anexo = chunk_split($anexo);
$boundary = "XYZ-" . date("dmYis") . "-ZYX";
$mens = "--$boundary\n";
$mens .= "Content-Transfer-Encoding: 8bits\n";
$mens .= "Content-Type: text/html; charset=\"utf-8\"\n\n"; //plain
$mens .= "<p>Nome: $client</p>" .
"<p>Cellphone: $cellphone</p>" .
"<p>Consumo: $consuption</p>" .
"<p>CEP: $cep</p>" .
"<p>Telhado: $roof</p>" .
"<p>Produto: $product\n</p>";
$mens .= "--$boundary\n";
$mens .= "Content-Type: ".$arquivo["type"]."\n";
$mens .= "Content-Disposition: attachment; filename=\"".$arquivo["name"]."\"\n";
$mens .= "Content-Transfer-Encoding: base64\n\n";
$mens .= "$anexo\n";
$mens .= "--$boundary--\r\n";
$headers = "MIME-Version: 1.0\n";
$headers .= "From: \"$name\" <$email_from>\r\n";
$headers .= "Content-type: multipart/mixed; boundary=\"$boundary\"\r\n";
$headers .= "$boundary\n";

//envio o email com o anexo
mail($email,$assunto,$mens,$headers);
echo('Enviado com sucesso!');
}

//se não tiver anexo
else{
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: \"$nome\" <$email_from>\r\n";

//envia o email sem anexo
mail($email,$assunto,$cellphone, $headers);
echo('Enviado com sucesso!');
}
$client = mysql_escape_string($client);
$cep = mysql_escape_string($cep);
$email_from = mysql_escape_string($email_from);
$cellphone = mysql_escape_string($cellphone);
$product = mysql_escape_string($product);

// Montamos a consulta SQL
$query1 = "INSERT INTO `sales_clients` (`name`, `email`, `cellphone`, `cep`, `product`, `roof`, `consuption_average`) VALUES ('".$client."', '".$email_from."', '".$cellphone."', '".$cep."', '".$product."', '".$roof."', '".$consuption."')";
// Executa a query
$inserir = mysql_query($query1);
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Tupã</title>
<script type="text/javascript">
window.setTimeout("location.href='index.php';", 2500);
</script>
</head>
<body>
</body>
</html>

Share this post


Link to post
Share on other sites


<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Tupã</title>

</head>

<body><H2>Solicitar orçamento</H2>

<p> </p>

<table width="100%" border="0">

<tr>

<td><form id="form1" name="form1" method="post" action="contactbudgetsend.php">

<table width="100%" border="0">

<tr>

<td width="40%" bgcolor="#E2E2E2">Nome:</td>

<td width="60%" bgcolor="#E2E2E2"><input type="text" name="name" id="name" /></td>

</tr>

<tr>

<td>E-mail:</td>

<td><input type="email" name="email" id="email" required/></td>

</tr>

<tr>

<td bgcolor="#E2E2E2">Celular/telefone:</td>

<td bgcolor="#E2E2E2"><input type="text" name="cellphone" id="cellphone" placeholder="0XX999999999" required/></td>

</tr>

<tr>

<td>CEP:</td>

<td><input name="cep" type="text" id="cep" placeholder="99999999" required/></td>

</tr>

<tr>

<td bgcolor="#E2E2E2">Média mensal de consumo</td>

<td bgcolor="#E2E2E2"><input type="number" name="consuption" id="consuption" required/>

kWh/mês</td>

</tr>

<tr>

<td>Tipo de telhado</td>

<td><input type="text" name="roof" id="roof" /></td>

</tr>

<tr>

<td bgcolor="#E2E2E2">Número de fase do padrão</td>

<td bgcolor="#E2E2E2"><select name="n_phase" id="n_phase">

<option value="1">1</option>

<option value="2">2</option>

<option value="3">3</option>

</select></td>

</tr>

<tr>

<td>Anexe sua fatura de energia caso possível</td>

<td><input name="arquivo" type="file"></td>

</tr>

<tr>

<td bgcolor="#E2E2E2">Produto:</td>

<td bgcolor="#E2E2E2"><select name="product" id="product">

<option value="1">Sistema Fotovoltaico conectado a rede</option>

<option value="2">Sistema Fotovoltaico Isolado</option>

<option value="3">Sistema Fotovoltaico para suprimento de sistemas auxiliares</option>

<option value="4">Manutenção de Sistemas Fotovoltaicos</option>

</select></td>

<input name="subject" type="hidden" id="subject" value="Solicitação de orçamento">

</tr>

</table>

<p><center>

<input type="submit" name="button" id="button" value="Enviar solicitação" />

</center></p>

</form></td>

<td><p> * Realize sua solicitação gratuitamente preenchendo os campos ao lado e entraremos em contato!

</p>

<p>* Normalmente a média mensal de consumo pode ser verificada na sua fatura de energia. Caso contrário, basta somar o consumo dos últimos 12 meses e dividir por 12. Ou anexar uma foto da fatura de energia no campo logo abaixo.</p>

<p>* O número de fase pode ser encontrado na sua fatura de energia (monofásico = 1, bifásica = 2 e trifásica = 3).</p>

<p>* Descreva como é ou será o telhado onde pretende instalar o sistema, Exemplos: laje, telha de fibrocimento, telha metálica com ângulo de 5 graus.</p></td>

</tr>

</table>

<p><center><img src="imagens/budget-158926_640.png" width="422" height="640" border="0"></center></p>

</body>

</html>

Share this post


Link to post
Share on other sites

Você está enviando o formulário pelo método tradicional ou está usando algum tipo de requisição por ajax?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Hlameiras
      Olá!
       
      Estou tentando desenvolver um formulário dinâmico em PHP, em que o utilizador ao clicar num determinado botão possa acrescentar campos de INPUTs ou SELECTs no mesmo.
      Encontrei este exemplo que funciona mas tem limitações:
      https://www.formget.com/how-to-dynamically-add-form-fields-and-increment-name-attribute-of-the-field/
       
      O problema é que os campos adicionais são gerados pelo lado do cliente (Javascript) e não pelo lado do servidor, logo no caso de gerar SELECTS que vão buscar informação a uma Base de Dados, as opções de escolha não são apresentadas. Qual será a melhor solução para resolver este problema?
       
      Agradecido!
       
       
       
    • By Numero 0800
      Sou bastante iniciante e estou aprendendo sobre HTML, CSS e JavaScript. Estou querendo fazer algo que acredito ser bem simples mas eu não tenho ideia de por onde começar, meu problema é o seguinte:
      Imagina um site de vendas (na parte do administrador do site) e quando o administrador clica em "Adicionar um novo produto" ele preenche um formulário, e assim  este produto aparece logo em seguida na pagina com as informações que foi inserida no formulário.
       
      A minha duvida é a seguinte ---> Como eu faço para que sempre que eu preencher um formulário o site criar automaticamente uma DIV com as informações que foram ali inseridas?
      Eu só preciso de um simples exemplo que o resto eu me viro, porque não estou conseguindo encontrar esta informação na net, só acho formulários do tipo "Crie sua conta" onde você envia informações para ficarem no servidor, mas eu quero um formulário onde ao ser preenchido ele simplesmente crie uma div nova na pagina e que todos possam ver.
       
      Por exemplo: Esse pot de agora, onde estou preenchendo um formulário e quando eu terminar ele vai criar a div automaticamente para todos poderem vem.
       
      OBS: Eu já tenho o modelo da div que eu quero, expliquem também como faz para essa div que vai ser criada seja uma copia da div anterior.
    • By joaopedropeterle
      Boa tarde pessoal!
       
      Preciso fazer os valores digitados no campo do formulário serem escritos de forma inversa, pois se trata de dinheiro, nada do que fiz deu certo até agora... meu código está assim:
       
      var valor = $("#valor"); valor.keyup(() => { valor.val(VMasker.toPattern(valor.val(), "999.999.999,99", {reverse: true})); }) #valor é a ID do campo onde será inserido... Não sei se fui bem claro, sou apenas iniciante...rsrs
    • By roohmcd
      Galera, seguinte, eu tenho um formulário com dois selects ocultos, eles serão exibidos somente quando eu selecionar uma das opções no select pai, porém toda vez que faço o envio deste ele pega o valor de um select oculto. Tem alguma maneira de fazer com ele só pegue o valor se eu selecionar a opção no select pai ?
       
      Este é meu formulário:
       
      <form id="createusers" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST" class="needs-validation" oninput='userrepassword.setCustomValidity(userrepassword.value != userpassword.value ? "Senhas não conferem." : "")' novalidate> <div class="form-group"> <div class="input-group"> <div class="input-group-prepend"> <div class="input-group-text"><i class="fas fa-user-circle"></i></div> </div> <input id="username" name="username" placeholder="Usuário" type="text" aria-describedby="usernameHelpBlock" required="required" class="form-control"> <div class="invalid-feedback">Por favor, digite um nome de usuário válido.</div> </div> <small id="usernameHelpBlock" class="form-text text-muted">Digite um nome de usuário.</small> </div> <div class="form-group"> <div class="input-group"> <div class="input-group-prepend"> <div class="input-group-text"><i class="fa fa-lock"></i></div> </div> <input id="userpassword" name="userpassword" placeholder="Senha" type="password" required="required" class="form-control" aria-describedby="userpasswordHelpBlock"> <div class="invalid-feedback">Por favor, digite uma senha.</div> </div> <small id="userpasswordHelpBlock" class="form-text text-muted">Digite uma senha para o usuário. Sua senha deve ter no mínimo 6 caracteres.</small> </div> <div class="form-group"> <div class="input-group"> <div class="input-group-prepend"> <div class="input-group-text"><i class="fa fa-lock"></i></div> </div> <input id="userrepassword" name="userrepassword" placeholder="Confirme a senha" type="password" required="required" class="form-control" aria-describedby="userrepasswordHelpBlock"> <div class="invalid-feedback">Por favor, confirme a senha.</div> </div> <small id="userrepasswordHelpBlock" class="form-text text-muted">Confirme a senha.</small> </div> <div class="form-group"> <label>Informe o grupo do usuário</label> <select id="usergroup" name="usergroup" class="form-control" required> <option value="">-- Selecione uma opção --</option> <option value="neg">Negado</option> <option value="tot">Total</option> <option value="controlado">Controlado</option> <option value="restrito">Restrito</option> <option value="lib">Liberado</option> <option value="noc">No Cache</option> </select> <div class="invalid-feedback">Por favor, selecione uma opção para informar o grupo do usuário.</div> <small id="usergroupHelpBlock" class="form-text text-muted">Selecione um grupo para o usuário.</small> </div> <div class="form-group"> <label>Selecione o grupo controlado para o usuário</label> <select id="usergroup-controlado" name="usergroup" class="form-control"> <option value="c01">Controlado 01</option> <option value="c02">Controlado 02</option> <option value="c03">Controlado 03</option> </select> </div> <div class="form-group"> <label>Selecione o grupo restrito para o usuário</label> <select id="usergroup-restrito" name="usergroup" class="form-control"> <option value="r01">Restrito 01</option> <option value="r02">Restrito 02</option> <option value="r03">Restrito 03</option> <option value="r04">Restrito 04</option> <option value="r05">Restrito 05</option> <option value="r06">Restrito 06</option> <option value="r07">Restrito 07</option> <option value="r08">Restrito 08</option> <option value="r09">Restrito 09</option> </select> </div> <div class="form-group"> <button id="submitcreateuser" name="submitcreateuser" type="submit" class="btn btn-primary">Criar Usuário</button> </div> </form> E para ocultar estes selects uso os seguintes scripts:
       
      <script type="text/javascript"> (function( $ ){ $.fn.dependsOn = function(element, value,callback) { var elements = this; var isContainer = false; //add change handler to element $(element).change(function(){ var $this = $(this); var showEm = false; if ( $this.is('select') ) { var fieldValue = $this.find('option:selected').val(); if ( !value ) { showEm = fieldValue && $.trim(fieldValue) != ''; } else if (typeof(value) === 'string') { showEm = value == fieldValue; } else if ($.isArray(value)) { showEm = ($.inArray(fieldValue, value) !== -1); } } else if ($this.is('input[type="text"]')){ var fieldValue = $this.val(); if ( !value ) { showEm = fieldValue && $.trim(fieldValue) != ''; } else if (typeof(value) === 'string') { showEm = value == fieldValue; } else if ($.isArray(value)) { showEm = ($.inArray(fieldValue, value) !== -1); } } // add containers for input else if ($this.hasClass('depends-container')){ isContainer=true; var target = $this.find('input[type="text"]'); var fieldValue = target.val(); if ( !value ) { showEm = fieldValue && $.trim(fieldValue) != ''; } else if (typeof(value) === 'string') { showEm = value == fieldValue; } else if ($.isArray(value)) { showEm = ($.inArray(fieldValue, value) !== -1); } } if(isContainer){ elements.each(function(){ $(this).toggle(showEm); if(callback){ callback(); } }); }else{ elements.closest('div').toggle(showEm); if(callback){ callback(); } } }); //hide the dependent fields return elements.each(function(){ var $this= $(this); var isContainer= false; $(element).each(function(index){ var el = $(this); if(el.hasClass('depends-container') && el.find('input[type="text"]').length){ isContainer = true; el = el.find('input[type="text"]'); if(el.val() != '' && $this.is('visible') == false ){ $this.show(); if(callback){ callback(); } } } }); if(!isContainer){ $(this).closest('div').hide(); } }); }; })( jQuery ); </script> <script type="text/javascript"> $('#usergroup-controlado').dependsOn('#usergroup', ['controlado']); $('#usergroup-restrito').dependsOn('#usergroup', ['restrito']); </script> E este é o script que faz o envio do formulário, onde obtenho as informações preenchidas:
       
      <?php if(isset( $_POST['submitcreateuser'] )) { $fullname = $_POST["fullname"]; $username = $_POST["username"]; $userpassword = $_POST["userpassword"]; $userrepassword = $_POST["userrepassword"]; $networkaccess = $_POST["networkaccess"]; $usergroup = $_POST["usergroup"]; $createuser = "$username $fullname $networkaccess $usergroup $userpassword $userrepassword s -a; echo $?"; echo "<pre> >> $createuser << </pre>"; } ?> Os selects ocultos são os do grupo Controlado e Restrito, quando selecionar essas opções ele abre outro select com as opções respectivas, tipo Controlado ele irá exibir o select Controlado 01, Controlado 02, Controlado 03. E assim serve também para a opção Restrito.
       
      Tem algo de errado no meu formulário ?
    • By Sapinn
      Salve! Tô tentando enviar emails para recuperar a senha no meu site estou usando uma função antiga mas não funciona, vejam:
       
      <?php     //permitem erros de relatório para que você possa ver se o script tem algum erro e não está sendo executado.     ini_set('display_errors', 1);     error_reporting(E_ALL);          //$ From – Endereço do remetente do e-mail.     $from = "testing @ yourdomain";     //O endereço de e-mail do destinatário.     $to = "recipientemailaddress";     //O assunto do e-mail.     $subject = "Verificando o correio do PHP";     //O conteúdo da mensagem de e-mail.     $message = "O correio do PHP funciona bem";     //Cada email tem cabeçalhos. Eles contêm informações vitais, tais como De endereço de e-mail.     $headers = "De:". $from;     //Esta é uma função PHP que executa o e-mail. Você não deve mudar nada nesta linha.     if(mail($to, $subject, $message, $headers)){ echo "Email enviado com sucesso!!"; }else{ echo "Erro ao enviar"; }   ?>     Alguém tem um codigo ou sabe como fazer? Eu fiz pesquisas na internet mas em nenhuma obtive exito. Obs: Meu site já esta hospedado não é localhost.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.