Ir ao conteúdo
  • Cadastre-se

Formulário em PHP que envie anexo.


diegorj2

Posts recomendados

Olá pessoal!

Dei uma procurada no google e encontrei alguns modelos de formulários em php com envio de anexo. Tentei adaptar para o formulário que eu tenho aqui, mas não consegui, por isso peço ajuda a quem tenha conhecimento na linguagem.

O meu formulário em PHP é este:

Página 1 - formulario.html


<form name="form1" method="post" action="form2.php">
<table width="434" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="8">  </td>
<td colspan="3"><font size="2" face="Verdana"><strong>Faça
um orçamento sem compromisso</strong></font></td>
</tr>
<tr>
<td> </td>
<td colspan="3"> </td>
</tr>
<tr>
<td> </td>
<td width="67"><font size="2" face="Verdana"><strong>Nome:</strong></font></td>
<td width="8">  </td>
<td width="351"><table width="303" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="302"><div align="right">
<input name="nome" type="text" id="nome" size="44" maxlength="50">
</div></td>
</tr>
</table></td>
</tr>
<tr>
<td><font size="1" face="Verdana"> </font></td>
<td colspan="3"><font size="1" face="Verdana"> </font></td>
</tr>
<tr>
<td> </td>
<td><strong><font size="2" face="Verdana">E-mail:</font></strong></td>
<td> </td>
<td><table width="303" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="302"><div align="right">
<input name="email" type="text" id="email" size="44" maxlength="50">
</div></td>
</tr>
</table></td>
</tr>
<tr>
<td><font size="1" face="Verdana"> </font></td>
<td colspan="3"><font size="1" face="Verdana"> </font></td>
</tr>
<tr>
<td> </td>
<td><strong><font size="2" face="Verdana">Telefone:</font></strong></td>
<td> </td>
<td><table width="301" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="94"><div align="right"><font size="2" face="Verdana"><strong>DDD:</strong></font></div></td>
<td width="10"><div align="right">  </div></td>
<td width="30"><div align="right">
<input name="ddd" type="text" id="ddd" size="5" maxlength="3">
</div></td>
<td width="9"><div align="right">  </div></td>
<td width="62"><div align="right"><strong><font size="2" face="Verdana">Número:</font></strong></div></td>
<td width="8">  </td>
<td width="90"><div align="right">
<input name="numero" type="text" id="numero" size="14" maxlength="13">
</div></td>
</tr>
</table></td>
</tr>
<tr>
<td><font size="1" face="Verdana"> </font></td>
<td colspan="3"><font size="1" face="Verdana"> </font></td>
</tr>
<tr>
<td> </td>
<td><strong><font size="2" face="Verdana">Cidade:</font></strong></td>
<td> </td>
<td><table width="301" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="176"><div align="right">
<input name="cidade" type="text" id="cidade" size="23" maxlength="50">
</div></td>
<td width="10">  </td>
<td width="55"><div align="right"><strong><font size="2" face="Verdana">Estado:</font></strong></div></td>
<td width="9">  </td>
<td width="53"><div align="right"><font size="2" face="Verdana">
<select name="estado" id="estado">
<option value="AC" selected>AC</option>
<option value="AL">AL</option>
<option value="AM">AM</option>
<option value="AP">AP</option>
<option value="BA">BA</option>
<option value="CE">CE</option>
<option value="DF">DF</option>
<option value="ES">ES</option>
<option value="GO">GO</option>
<option value="MA">MA</option>
<option value="MG">MG</option>
<option value="MS">MS</option>
<option value="MT">MT</option>
<option value="PA">PA</option>
<option value="PB">PB</option>
<option value="PE">PE</option>
<option value="PI">PI</option>
<option value="PR">PR</option>
<option value="RJ">RJ</option>
<option value="RN">RN</option>
<option value="RO">RO</option>
<option value="RR">RR</option>
<option value="RS">RS</option>
<option value="SC">SC</option>
<option value="SE">SE</option>
<option value="SP">SP</option>
<option value="TO">TO</option>
</select>
</font> </div></td>
</tr>
</table></td>
</tr>
<tr>
<td><font size="1" face="Verdana"> </font></td>
<td colspan="3"><font size="1" face="Verdana"> </font></td>
</tr>
<tr>
<td> </td>
<td colspan="3"><table width="359" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="80"><strong><font size="2" face="Verdana">Seu site
<br>
(opcional):</font></strong></td>
<td width="9"><div align="left">  </div></td>
<td width="270"><div align="right">
<input name="site" type="text" id="site" value="http://" size="43" maxlength="50">
</div></td>
</tr>
</table></td>
</tr>
<tr>
<td><font size="1" face="Verdana"> </font></td>
<td colspan="3"><font size="1" face="Verdana"> </font></td>
</tr>
<tr>
<td> </td>
<td colspan="3"><table width="363" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="80"><strong><font size="2" face="Verdana">Segmento:</font></strong></td>
<td width="10">  </td>
<td width="273"><input name="segmento" type="text" id="segmento" size="43" maxlength="40"></td>
</tr>
</table></td>
</tr>
<tr>
<td><font size="1" face="Verdana"> </font></td>
<td colspan="3"><font size="1" face="Verdana"> </font></td>
</tr>
<tr>
<td> </td>
<td colspan="3"><strong><font size="2" face="Verdana">Mensagem: <font size="1">(descreva
detalhadamente as necessidades)</font></font></strong></td>
</tr>
<tr>
<td> </td>
<td colspan="3"><table width="350" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="350"><textarea name="proposta" cols="44" rows="5" id="proposta"></textarea></td>
</tr>
</table></td>
</tr>
<tr>
<td> </td>
<td colspan="3"> </td>
</tr>
<tr>
<td> </td>
<td colspan="3"><div align="center">
<input type="submit" name="Submit" value="Enviar Orçamento">
<input type='hidden' name='para' [EMAIL="value='[email protected]'"]value='[email protected]'[/EMAIL]>
<input type='hidden' name='assunto' value='Orcamento'>
<input type='hidden' name='retorno' value='sucesso.html'>
</div></td>
</tr>
</table>
</form>

Página 2 - form2.php (a página .html chama esta página .php)


<?php
$para=$_POST['para'];
$assunto=$_POST['assunto'];
$retorno=$_POST['retorno'];
$nome=$_POST['nome'];
$email=$_POST['email'];
$ddd=$_POST['ddd'];
$numero=$_POST['numero'];
$cidade=$_POST['cidade'];
$estado=$_POST['estado'];
$site=$_POST['site'];
$segmento=$_POST['segmento'];
$proposta=$_POST['proposta'];
if (isset($para)){
$texto .= "<strong>Nome:<br></strong>".$nome."";
$texto .= "<br><strong>E-mail:</strong><br>".$email."";
$texto .= "<br><strong>DDD:</strong><br>".$ddd."";
$texto .= "<br><strong>NumeroTelefone:</strong><br>".$numero."";
$texto .= "<br><strong>Cidade:</strong><br>".$cidade."";
$texto .= "<br><strong>Estado:</strong><br>".$estado."";
$texto .= "<br><strong>Site:</strong><br>".$site."";
$texto .= "<br><strong>Segmento:</strong><br>".$segmento."";
$texto .= "<br><strong>Proposta:</strong><br>".$proposta."";
$texto .= $msg;
if (mail($para,$assunto,$texto,"From: $para\nContent-type: text/html\n")){
header("Location:$retorno");
}else{
echo 'não foi possivel enviar sua mensagem...';
}
header("Location:$retorno");
}else {
header("Location: sucesso.html");
}
?>


Até ai tudo bem, funciona perfeitamente, eu recebo a mensagem certinha no meu e-mail. Eu preciso adaptar para receber arquivo em anexo. Ai começa o problema... não consegui de jeito nenhum. Segue abaixo o código que eu peguei de anexar arquivo:


rpo é a variável do corpo do e-mail isso é onde aparece a mensagem do e-mail !
$mime_list = array("gif"=>"image/gif", "jpg"=>"image/jpg", "jpeg"=>"image/jpeg"); // Uma lista de tipos de arquivo que podaram ser enviados em anexo !
$ABORT = FALSE;
$data = "XYZ-" . date(dmyhms) . "-ZYX"; // Data de envio do e-mail !
// Mensagem do e-mail para o script entender que é um e-mail com anexo !
$message = "--$data\n";
$message .= "Content-Transfer-Encoding: 8bits\n";
$message .= "Content-Type: text/plain; charset=\"ISO-8859-1\"\n\n";
$message .= $corpo;
$message .= "\n";
// Pega o caminho completo do nome do arquivo !
$vet_anexo[1] = $anexo;
//Checa se o arquivo que será anexado do existe e este será codificado !
foreach($vet_anexo as $chave => $caminho) {
if ($caminho !='') {
if (file_exists($caminho)){
//Tentando abrir o aquivo
if ($arq = fopen($caminho,"rb")) {
//Pega o nome do aquivo a partir do seu caminho
$arq_nome = array_pop(explode(chr(92),$caminho));
$conteudo = fread($arq,filesize($caminho));
//Codifica os dados do Arquivo
$codificado = base64_encode($conteudo);
//*****SPLIT(Separando ou quebrando os dados codificados)*****
$codificado_split = chunk_split($codificado);
fclose($arq);
$message .= "--$data\n";
$message .= "Content-Type: $anexo_type\n";
$message .= "Content-Disposition: attachment; filename=\"$anexo_name\" \n";
$message .= "Content-Transfer-Encoding: base64\n\n";
$message .= "$codificado_split\n";
}
else { $erro = "Não foi possivel abrir o Arquivo $chave: $arq_nome";
$ABORT = TRUE; // $ABORD = TRUE significa que o script ira parar neste ponto !
}
}
else {
$erro = "O Arquivo $chave Não Exite: $arq_nome";
$ABORT = TRUE;
}
}
}
$message .= "--$data--\r\n";
$topo = "MIME-Version: 1.0\n";
$topo .= "From: <$de>\r\n";
$topo .= "Content-type: multipart/mixed; boundary=\"$data\"\r\n";

$mensagem = mail($para, $assunto, $message, $topo);
if ($mensagem) {
$erro = "Mensagem enviada!";
} else {
$erro = "O envio da mensagem falhou!";
}
}else{
$erro = "Você deixou um dos campos do formulário vazio!!";
}
}else{
$erro = "O arquivo deve ter no máximo 2MB !! Desculpe!!";
}
}
?>
<!-- Código HTML do Script em PHP de enviar arquivos em ANEXO ! deve esta junto com o código em PHP acima ! -->
<table border="0" align="center" cellpadding="0" cellspacing="0" ><br>
<!-- Quando enviar um aquivo o form tem que ter este enctype= -->
<form method="post" enctype="multipart/form-data" action=""> <br>
<tr>
<td colspan="2"> <div align="left"><strong>
ANEXO
<!-- Para permitir que qualquer pessoa mude os e-mails de origem e destino mude o type de hidden dos imputs
do name="de" e name="para" e do name="assunto" para text e mude os value para " " -->
<input type="hidden" name="MAX_FILE_SIZE" value="1000000">
<input type="hidden"name="acao" value="anexar">
<input type="hidden" name="de" size=40 value="[EMAIL="[email protected]"][email protected][/EMAIL]">
<input type="hidden"name="para" size=40 value="[EMAIL="[email protected]"][email protected][/EMAIL]">
<input type="hidden" name="assunto" size=40 value="Assunto">
</strong></div></td>
</tr>
<tr>
<td colspan="2"><div align="center"><? echo $erro; // Aqui aparecera as msg de erro caso ocorra erro !! ?></td>
</tr>
<tr>
<td width="115"> </td>
<td width="303">Obs.: O arquivo deve
ter no máximo 2MB!</b></font></td>
</tr>
<tr>
<td width="115">Arquivo:
</td>
<td width="303"><input type="file" name="anexo">
</td>
</tr>
<tr>
<td colspan="2"><div align="center">
<input name="submit" type="submit" value="Enviar">
</td>

A única coisa que eu preciso, é que no meu formulário, apareça a caixinha de anexar arquivo. Tentei adaptar isso, mas não consegui.

Quem puder me dar uma força, agradeço!

Link para o comentário
Compartilhar em outros sites

Esse é meu servidor

Plano: PHP BASIC

Características Gerais Espaço em disco100 MB Transferencia mensal2 GB Emails20 Quota email30 MB Recursos de linguagem ASP... ASP.NET 1.1... ASP.NET 2.0... XML... PHPsim_escuro.jpg JSP... Perl... Recursos de Banco de dados MySQLsim_claro.jpg Access... Recursos Gerais Painel de Controlesim_claro.jpg Sub-dominios5 Acesso FTP ilimitado, Usuários de FTP adicionais10 Pagina de erro personalizada... Estatísticas de acesso Webalizersim_escuro.jpg Gerenciamento de emailssim_claro.jpg POP3/SMTP própriosim_escuro.jpg Webmailsim_claro.jpg Redirecionamento de emailssim_escuro.jpg Apelidos (alias) de email ilimitadossim_claro.jpg Auto-resposta de emailsim_escuro.jpg Anti-vírus de email

Obs. onde tem ... é porque o provedor não aceita

a linha p chamar o form2.php está correta mas dá página inexistente

Onde será que estou errando ?

As páginas deixei com os mesmos nomes que você p nao haver erro .

Link para o comentário
Compartilhar em outros sites

Acabei De Verificar Minha Caixa De E-mail E Chegou Os E-mails Q Mandei P Fazer Teste.

SÓ Tem Um Problema, Quando Clico No Sie Em Enviar Da A ImpressÃo De Q NÃo Enviou, porque Aparece Que NÃo É PossÍvel Localizar A PÁgina.

O Cliente Pode Pensar Q O E-mail NÃo Foi Enviado.

Tem Como Depois Q Clicar Em Enviar Aparecer Uma PÁgina De Agradecimento ?

Obrigado

Link para o comentário
Compartilhar em outros sites

Arquivado

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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...