Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Gente cabei de chegar. Podem me ajudar, estou com um problema.
Seguinte, tenho um formulario aqui, e ele não esta funcionando direito, eu sou iniciante em php então peço ajuda de vocês.
No arquivo php onde é parte do form em si, está assim,:
trabalhe-conosco.php
<td bgcolor="#FFFFFF"><p class="style2">Trabalhe Conosco </p>
<p class="texto23" align="justify" style="color:#340C70"> </p>
<table width="59%" border="0" align="center" cellpadding="0" cellspacing="0">
<form action="trabalhe_resp.php" method="post" enctype="multipart/form-data">
<tr>
<td width="26%" height="40" class="texto23"><span class="style4">Nome Completo</span></td>
<td width="74%"><span class="texto23">
<input name="nome" type="text" class="formulario" id="nome" maxlength="100" />
</span></td>
</tr>
<tr>
<td height="40" class="style4">Sexo</td>
<td><p>
<input name="sexo" type="radio" value="masculino" id="masculino" />
<label for="radiobutton">Masculino</label> <input name="sexo" type="radio" value="feminino" id="feminino" />
<label for="radiobutton">Feminino</label>
</p></td>
</tr>
<tr>
<td height="40" class="style4">Data de Nascimento </td>
<td><span class="texto23">
<input name="nascimento" type="text" class="formulario" id="nascimento" maxlength="100" />
</span></td>
</tr>
<tr>
<td height="40" class="texto23"><span class="style4">E-mail</span></td>
<td><span class="texto23">
<input name="email" type="text" class="formulario" id="email" maxlength="100" />
</span></td>
</tr>
<tr>
<td height="40" class="texto23"><span class="style4">Telefone</span></td>
<td><span class="texto23">
<input name="telefone" type="text" class="formulario" id="telefone" maxlength="100" />
</span></td>
</tr>
<tr>
<td valign="center" class="texto23"><span class="style4">Arquivo de Currículo </span></td>
<td><label for="file"></label>
<div align="right">
<p>
<input name="arquivo" type="file" id="arquivo" lang="pt"/>
</p>
</div></td>
</tr>
<tr>
<td height="36" valign="top"><input type="hidden" name="site" value="ClickFormulas" /></td>
<td align="right"> </td>
</tr>
<tr>
<td height="36" valign="top"> </td>
<td align="right"><span class="texto23">
<label>
<input type="image" name="imageField" id="imageField" src="imagens/bt_enviar.jpg" />
</label>
</span></td>
</tr>
</form>
Daí tenho outro arquivo php, que é a página de resposta (Seus dados foram recebidos com sucesso), nesa página está também o processo do form:
trabalhe-resp.php
<?
extract($_POST);
$nome = $_POST["nome"];
$sexo = $_POST["sexo"];
$nascimento = $_POST["nascimento"];
$email = $_POST["email"];
$telefone = $_POST["telefone"];
$headers = "From: contato@clickformulas.com.br \n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: text/html; charset=\"utf-8\"\n";
//$headers .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
$mens = "Nome: ".$nome."<br>Nascimento: ".$nascimento."<br>Email: ".$email."<br>Telefone: ".$telefone.
mail("teste@linksmonitorados.com.br", $nome, $email, $headers);
?>
Como vocês podem ver não ta completo, eu não sei direito o que fazer agora.
Eu estou recebendo no meu email somente o que é preenchido no campo "Email" do formulario, as outras informações e o anexo não vem.
Outra coisa, o echoes da resposta formulario tá errado, isso não é pra aparecer na tela, é pra vir pro meu e-mail. >.<
Eu gostaria de saber como tem que ser feito o código pra funcionar direito e se possível explicações para entender direito, eu vi os códigos prontos aqui, mas não entendo, e não queria o código pronto, queria editar esse que estou fazendo até deixar ele 100%.
Obrigado
Será que vocês podem me dar uma ajuda com isso?
*EDIT: Código foi alterado, echoes retirados, porém ainda não recebo as informações no meu e-mail, só vem o que o usuario escreve no campo e-mail.
Código foi alterado, echoes retirados, porém ainda não recebo as informações no meu e-mail, só vem o que o usuario escreve no campo e-mail.
Cara onde você está anexando o arquivo?
Acho que ta faltando a função do Objeto Mail para anexar o arquivo.
Caso você esteja usando uma função padrão de uma API de terceiros para enviar o email.
acredito que você deva mexer na função ou adicionar mais uma variável no comando da funcao.
Se não entender me avise que explico melhor.
abraco
>
Cara onde você está anexando o arquivo?
Input file, no form dele, porem ele não implementou $_FILES pra capturar esse arquivo
>
Acho que ta faltando a função do Objeto Mail para anexar o arquivo.
Não é objeto, a função pra enviar email do PHP é uma 'resource'
Sanozukez: para você enviar arquivos por e-mail, você tem que usar base64, então você faz upload do arquivo
grava no servidor, extrai o base64 desse arquivo, e exclui o mesmo do servidor, abraços
Isso, eu não sei utilizar esse $_Files e todo o processo que você disse que tem que fazer, me ajude por favor.
Outra coisa que eu disse antes, vocês conseguem ver onde está o problema que faz com que eu não receba os outros dados do formulario?
Como eu disse o problema não esta só no anexo, os outros dados também não vem, vem somente o e-mail da pessoa que enviou, sendo que eu queria receber esses dados que também tem no form:
$nome = $_POST["nome"];
$sexo = $_POST["sexo"];
$nascimento = $_POST["nascimento"];
$email = $_POST["email"];
$telefone = $_POST["telefone"];
Me ajudem por favor.
Assim amigo:
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<fieldset>
<form method="post" enctype="multipart/form-data">
<label for="anexo">
Anexo: <input type="file" name="file" multiple />
<input type="submit" name="Enviar" value="Enviar" />
</label>
</form>
</fieldset>
<?php
if( isset( $_POST[ 'Enviar' ] ) ){
$arquivo = $_FILES[ 'file' ];
$type = $arquivo[ 'type' ];
$destinatario = '...';
$assunto = 'Anexo de arquivos';
$filename = sprintf( '%s.%s', md5(uniqid().time().$_FILES[ 'name' ]), pathinfo( $arquivo[ 'name' ], PATHINFO_EXTENSION ) );
if( move_uploaded_file( $arquivo[ 'tmp_name' ], 'dir/'.$filename ) ){
$base64 = base64_encode( file_get_contents( 'dir/'.$filename ) );
$boundary = date("dmYhis");
$headers = implode ( "\n", Array( "MIME-Version: 1.0 ",
"Content-Type: multipart/mixed; boundary=\"$boundary\" \r",
"$boundary " ) );
$conteudo = "--$boundary \n";
$conteudo .= "Content-Type: text/html; charset=\"iso-8859-1\" \n";
$conteudo .= "Content-Transfer-Encoding: 8bits \n\n";
$conteudo .= "Envio de arquivos \r\n";
$conteudo .= "--$boundary \n";
$conteudo .= "Content-Type: $type; name=\"".$filename."\" \n";
$conteudo .= "Content-Transfer-Encoding: base64 \n";
$conteudo .= "Content-Disposition: attachment; filename=\"".$filename."\" \r\n" ;
$conteudo .= "$base64 \n";
$conteudo .= "--$boundary \n";
unlink( 'dir/'.$filename );
if( mail( $destinatario, $assunto, $conteudo, $headers ) ){
echo 'Email Enviado com sucesso';
}else{
echo 'Falha no envio do email';
}
}
}
?>
</body>
</html>
Quanto ao problema de não receber os outros dados, é bem simples:
mail("teste@linksmonitorados.com.br", $nome, $email, $headers);
Você não está enviando a string concatenada que você fez, está enviando apenas
o email que o usuário enviou pelo formulário.
faça assim no seu trabalhe-resp.php:
mail("teste@linksmonitorados.com.br", $nome, $mens, $headers);
Andrey, obrigado pela ajuda. Vamos lá, eu alterei o código do trabalhe_resp.php para:
<?
extract($_POST);
$nome = $_POST["nome"];
$sexo = $_POST["sexo"];
$nascimento = $_POST["nascimento"];
$email = $_POST["email"];
$telefone = $_POST["telefone"];
$headers = "From: contato@clickformulas.com.br \n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: text/html; charset=\"utf-8\"\n";
//$headers .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
$mens = "Nome: ".$nome."<br>Sexo: ".$sexo."<br>Nascimento: ".$nascimento."<br>Email: ".$email."<br>Telefone: ".$telefone. //adicionei aqui o que faltava na mensagem
mail("teste@linksmonitorados.com.br", $nome, $mens, $headers); //alterei aqui conforme você disse
?>
Porém, agora o e-mail chega em branco, sem nada, e o que escrevo no campo nome, vem na linha subject (assunto) do e-mail.
Vamos por partes, vamos resolver se possível, primeiro a parte dos dados sem o anexo. Depois o anexo, eu não sei direito aonde devo inserir aquele código que você passou na resposta acima.
Desculpa cara, eu sou totalmente iniciante em PHP. Mas eu estou começando a entender, só que não entendi porque não funcionou nada dessa vez...
$mens = "Nome: ".$nome."<br>Sexo: ".$sexo."<br>Nascimento: ".$nascimento."<br>Email: ".$email."<br>Telefone: ".$telefone. //adicionei aqui o que faltava na mensagem
Não sei se adianta, mas no final, ao invés de "." deveria ter ";":
$mens = "Nome: ".$nome."<br>Sexo: ".$sexo."<br>Nascimento: ".$nascimento."<br>Email: ".$email."<br>Telefone: ".$telefone;
>
Porém' date=' agora o e-mail chega em branco, sem nada, e o que escrevo no campo nome, vem na linha subject (assunto) do e-mail.
[/quote']
Isso porque você está setando a variável $nome como subject da função...
Foi exatamente o que o BigJhow disse, amigo.
eu te aconselho a ver a documentação quando estiver com dúvida nos parâmetros, ok ?
Manual do PHP :seta: Função mail
^_^
Ótimo gente Andrey e BigJhow valeu caras, vocês são 10.
Agora recebo todos os dados, e entedi como funciona a linha $mens, muito obrigado.
Agora só falta o mais dificil :ermm: (para o anexo)
Adicionar o código do Andrey no meu form.
Tenho que adicionar o código todo no meu form ou no php que processa o form?
Alias, tenho que adaptar o código certo? Pois senão não funciona o resto do meu form.
Mais uma ajudinha aí pra fecha com chave de ouro por favor. :D
Caras, :clap: pra vocês
Também estou no aguardo da resposta do Andrey. Como comentei no outro tópico, essa função me dá medo xD
Simples gente, coloque no trabalhe-resp.php isso:
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<fieldset>
<form method="post" enctype="multipart/form-data">
<label for="anexo">
Anexo: <input type="file" name="file" multiple />
<input type="submit" name="Enviar" value="Enviar" />
</label>
</form>
</fieldset>
<?php
if( isset( $_POST[ 'Enviar' ] ) ){
$arquivo = $_FILES[ 'arquivo' ];
$type = $arquivo[ 'type' ];
/**
* Teu Email
*/
$destinatario = 'teste@linksmonitorados.com.br';
/**
* Assunto
*/
$assunto = 'Anexo de arquivos';
$filename = sprintf( '%s.%s', md5(uniqid().time().$_FILES[ 'name' ]), pathinfo( $arquivo[ 'name' ], PATHINFO_EXTENSION ) );
if( move_uploaded_file( $arquivo[ 'tmp_name' ], 'dir/'.$filename ) ){
$base64 = base64_encode( file_get_contents( 'dir/'.$filename ) );
$boundary = date("dmYhis");
$headers = implode ( "\n", Array( "MIME-Version: 1.0 ",
"Content-Type: multipart/mixed; boundary=\"$boundary\" \r",
"$boundary " ) );
$nome = $_POST[ "nome" ];
$sexo = $_POST[ "sexo" ];
$nascimento = $_POST[ "nascimento" ];
$email = $_POST[ "email" ];
$telefone = $_POST[ "telefone" ];
$conteudo = "--$boundary \n";
$conteudo .= "Content-Type: text/html; charset=\"iso-8859-1\" \n";
$conteudo .= "Content-Transfer-Encoding: 8bits \n\n";
$conteudo .= sprintf( "Nome: %s \n Sexo: %s \n Nascimento: %s \n Email: %s \n Telefone: %s \n",
$nome, $sexo, $nascimento, $email, $telefone );
$conteudo .= "--$boundary \n";
$conteudo .= "Content-Type: $type; name=\"".$filename."\" \n";
$conteudo .= "Content-Transfer-Encoding: base64 \n";
$conteudo .= "Content-Disposition: attachment; filename=\"".$filename."\" \r\n" ;
$conteudo .= "$base64 \n";
$conteudo .= "--$boundary \n";
unlink( 'dir/'.$filename );
if( mail( $destinatario, $assunto, $conteudo, $headers ) ){
echo 'Email Enviado com sucesso';
}else{
echo 'Falha no envio do email';
}
}
}
?>
</body>
</html>(Me aproveitando do tópico do amigo) Pra que serve a variável $boundary?
é o corpo da mensagem, também significa que são várias partes ..
Caro Andrey, ainda não funcionou, para efeito de teste, eu copiei o código que você passou e colei no meu arquivo trabalhe_resp.php, deixando só seu código, e não foi.
Tipo, algumas informações que talvez possam ser importantes saber para fazer o código.
Eu vou receber curriculos, pelo anexo, então vão ser documentos tipo doc, txt, pdf, etc. Porém não é necessário criar um código para verificar o tipo de arquivo, visando não dificultar muito no código.
Com o seu código, assim que eu clicava em enviar no form, eu era direcionado para outra pagina que só tinha uma linha com um botão procurar, para anexar arquivo novamente.
Na verdade era para abrir a pagina trabalhe_resp, que tinha uma mensagem aguarde nosso contato etc, e o arquivo ja era pra ter sido enviado pelo form anterior.
Se facilicar para você entender vou postar o link da página:
http://www.clickformulas.com.br/clickformulas/trabalhe-conosco.php
Peço que preencha com qualquer dado para você ver a página de resposta que é a trabalhe_resp.php.
No momento eu deixei o modelo anterior que consegui fazer funcionar sem o anexo com ajuda sua e do Big. Então quando você clicar em enviar eu estarei recebendo os dados menos o anexo.
O código inteiro da minha página trabalhe_resp segue abaixo:
<?
extract($_POST);
$nome = $_POST["nome"];
$sexo = $_POST["sexo"];
$nascimento = $_POST["nascimento"];
$email = $_POST["email"];
$telefone = $_POST["telefone"];
$headers = "From: contato@clickformulas.com.br \n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: text/html; charset=\"utf-8\"\n";
//$headers .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
$mens = "Nome: ".$nome."<br>Sexo: ".$sexo."<br>Nascimento: ".$nascimento."<br>Email: ".$email."<br>Telefone: ".$telefone;
mail("teste@linksmonitorados.com.br", $nome, $mens, $headers);
?>
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Click Fórmulas</title>
</head>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" bgcolor="#FFFFFF">
<div id="apDiv2" style="display:none;"><img src="imagens/o_que_e_isso.png" /></div>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="600" align="center" valign="top"><table width="973" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="35%" height="61"><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><a href="index.htm"><img src="imagens/logo_click.jpg" alt="" width="332" height="184" border="0" /></a></td>
<td align="center"><div class="titulo">Seu Laboratório de Manipulação<br />
e Homeopatia na Internet</div>
<font face="Arial, Helvetica, sans-serif" color="#039" size="3"><br />
<strong>Compre com segurança! Pague menos e receba em casa!</strong></font><br /></td>
</tr>
<tr>
<td width="31%" height="20"> </td>
<td width="69%" height="20" align="center"> </td>
</tr>
<tr>
<td colspan="2" align="left"><table width="100%" border="0" cellspacing="10" cellpadding="10">
<tr>
<td height="267" valign="top" bgcolor="#E3EFFD"><p class="texto211"><strong class="titulo1" style="color:#340C70; font-size: 20px;">Entre em Contato</strong></p>
<hr color="#340C70" />
<p class="texto23" align="justify" style="color:#340C70">Seu email foi enviado com sucesso!<br />
<br />
Por favor, aguarde nosso retorno.</p> <p class="texto211" align="justify" style="color:#340C70"> </p></td>
</tr>
</table></td>
</tr>
<tr>
<td> </td>
<td align="center"> </td>
</tr>
<tr>
<td> </td>
<td align="center"> </td>
</tr>
</table>
</td>
</tr>
<tr>
<td align="left" valign="top"><? include('rodape.php'); ?></td>
</tr>
</table></td>
</tr>
</table>
</body>
</html>
Lembrando que este fuciona tudo agora menos o anexo, que não vem.
Porém não é importante que o nome seja exclusivo, pois é interessante que venham todo os anexos que enviarem com o nome curriculo, ja que cada e-mail que chegar só vai poder ter 1 anexo e saberemos que é o curriculo da pessoa que esta enviando.
Então, é o seguinte, você tem que criar o botão submit igual esta no meu código antigo, por isso
não entrava no seguinte if:
if( isset( $_POST[ 'Enviar' ] ) ){
Ao invés de colocar a imagem, coloque o input que eu usei, esse aqui:
<input type="submit" name="Enviar" value="Enviar" />
Eu sei que to pedindo demais, mas tem como alguém juntar isso que o Andrey (ou você mesmo Andrey :joia: ) no código que passei por último, eu fiz uns testes aqui mais daí ficou errado, apareceu uma parte do código no visual do php. Eu recebi aqui os testes que vocês enviaram, então creio que vocês viram como está "visualmente". O visual deve permanecer assim, só falta juntar ali o código que interpreta o arquivo e me envie, e eu sei que também ta aí em cima, pois o Andrey colocou, mas eu não to conseguindo coloca-lo no lugar certo do meu código.
Desculpa minha ignorancia no assunto :( .
Cara, não tem mistério, você coloca teu formulário em cima, e o script PHP abaixo do HTML, então quando você clicar no IF
ele vai interpretar o código PHP
Gente pelo amor de deus não desistão de mim.
No momento meus códigos estão assim:
trabalhe-conosco.php (form)
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Click Fórmulas</title>
<style>
#divmarquee{
position:absolute;
top: 605px;width: 100%;
overflow:hidden;
height: 25px;
}
#apDiv2 {
position:absolute;
top:735px;
left:50%;
margin-left: 50px;
width:349px;
height:76px;
z-index:5;
}
.titulo {
font-family: Arial, Helvetica, sans-serif;
color:#039;
font-size: 30px;
font-weight: bold;
}
.texto2 {
font-family: Arial, Helvetica, sans-serif;
color: #FFF;
}
.texto3 {
font-family: Arial, Helvetica, sans-serif;
color: #FFF;
text-decoration:none;
}
.texto3:hover {
font-family: Arial, Helvetica, sans-serif;
color: #FFF;
text-decoration:underline;
}
#container {
padding:0;
position:absolute;
top:50%;
left:50%;
margin:-263px 0 0 -492px;
}color: #340C70;
}
.texto2 {
font-size: 14px;
}
.texto2 {
color: #340C70;
}
.texto3 {
color: #340C70;
}
.texto21 { font-family: Arial, Helvetica, sans-serif;
color: #340C6F;
}font-size: 15px;
}
.texto22 {font-family: Arial, Helvetica, sans-serif;
color: #340C6F;
}
.textofone { font-size: 15px;
font-family: Arial, Helvetica, sans-serif;
color: #340C70;
}
.textorodape {
font-size: 13px;
font-family: Arial, Helvetica, sans-serif;
color: #340C70;
}
.formulario { font-family:Arial, Helvetica, sans-serif;
font-size:12px;
width: 400px;
background-color: #FFFFFF;
border: 1px solid #2D5988;
}
.texto23 { font-family: Arial, Helvetica, sans-serif;
font-size: 14px;
color: #340C70;
}
.texto211 {font-family: Arial, Helvetica, sans-serif;
color: #FFF;
}
.texto211 {font-size: 12px;
}
.texto211 {color: #340C70;
}
.titulo1 {font-family: Arial, Helvetica, sans-serif;
color: #FFF;
font-size: 30px;
font-weight: bold;
}margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
.style2 {
color: #2D5988;
font-weight: bold;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 30px;
}</style>
<script>
function exibeBalao(id,acao,posicao){
if(acao == 'true'){
document.getElementById(id).style.display = '';
document.getElementById(id).style.top = getPosicaoElemento('btoq').top + 28 + "px";
}else{
document.getElementById(id).style.display = 'none';
}
}
function getPosicaoElemento(elemID){
var offsetTrail = document.getElementById(elemID);
var offsetLeft = 0;
var offsetTop = 0;
while (offsetTrail) {
offsetLeft += offsetTrail.offsetLeft;
offsetTop += offsetTrail.offsetTop;
offsetTrail = offsetTrail.offsetParent;
}
if (navigator.userAgent.indexOf("Mac") != -1 &&
typeof document.body.leftMargin != "undefined") {
offsetLeft += document.body.leftMargin;
offsetTop += document.body.topMargin;
}
return {left:offsetLeft, top:offsetTop};
//EXEMPLO USO
//alert("esquerda:" + getPosicaoElemento("ELEMENTO").left)
//alert("topo:" + getPosicaoElemento("ELEMENTO").top)
}
</script>
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-20330667-1']);
_gaq.push(['_setDomainName', 'none']);
_gaq.push(['_setAllowLinker', true]);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</head>
<body bgcolor="#FFFFFF">
<div id="apDiv2" style="display:none;"><img src="imagens/o_que_e_isso.png" /></div>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="600" align="center" valign="top"><table width="973" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="1000" height="61"><table width="1000" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="100%" height="20"><img src="image/top.png" width="1000" height="37" border="0" usemap="#Map" />
<map name="Map" id="Map"><area shape="rect" coords="706,2,850,35" href="https://www.clickformulas.com.br/livezilla/livezilla.php?code=U0VSVkVSUEFHRQ__" />
<area shape="rect" coords="856,2,989,34" href="#" onclick="window.open('https://www.clickformulas.com.br/livezilla/livezilla.php?code=U0VSVkVSUEFHRQ__','','width=590,height=550,left=0,top=0,resizable=yes,menubar=no,location=yes,status=yes,scrollbars=yes')" />
</map></td>
</tr>
<tr>
<td height="20"><img src="image/clickformulas_banner.png" width="1000" height="188" border="0" usemap="#Map4" />
<map name="Map4" id="Map4">
<area shape="poly" coords="67,69,79,45,106,29,141,19,189,10,230,10,264,13,299,19,324,27,348,40,365,60,367,74,361,88,350,96,328,110,320,113,334,118,345,125,346,138,340,151,322,159,296,167,260,169,233,165,204,159,188,142,188,128,159,126,126,118,93,104,75,88" href="index.php" />
</map></td>
</tr>
<tr>
<td height="20"> </td>
</tr>
<tr>
<td align="left"><table width="100%" border="0" cellspacing="10" cellpadding="10">
<tr>
<td bgcolor="#FFFFFF"><p class="style2">Trabalhe Conosco </p>
<p class="texto23" align="justify" style="color:#340C70"> </p>
<table width="59%" border="0" align="center" cellpadding="0" cellspacing="0">
<form action="trabalhe_resp.php" method="post" enctype="multipart/form-data">
<tr>
<td width="26%" height="40" class="texto23"><span class="style4">Nome Completo</span></td>
<td width="74%"><span class="texto23">
<input name="nome" type="text" class="formulario" id="nome" maxlength="100" />
</span></td>
</tr>
<tr>
<td height="40" class="style4">Sexo</td>
<td><p>
<input name="sexo" type="radio" value="masculino" id="masculino" />
<label for="radiobutton">Masculino</label> <input name="sexo" type="radio" value="feminino" id="feminino" />
<label for="radiobutton">Feminino</label>
</p></td>
</tr>
<tr>
<td height="40" class="style4">Data de Nascimento </td>
<td><span class="texto23">
<input name="nascimento" type="text" class="formulario" id="nascimento" maxlength="100" />
</span></td>
</tr>
<tr>
<td height="40" class="texto23"><span class="style4">E-mail</span></td>
<td><span class="texto23">
<input name="email" type="text" class="formulario" id="email" maxlength="100" />
</span></td>
</tr>
<tr>
<td height="40" class="texto23"><span class="style4">Telefone</span></td>
<td><span class="texto23">
<input name="telefone" type="text" class="formulario" id="telefone" maxlength="100" />
</span></td>
</tr>
<tr>
<td valign="center" class="texto23"><span class="style4">Arquivo de Currículo </span></td>
<td><label for="file"></label>
<div align="right">
<p>
<input name="arquivo" type="file" id="arquivo"/>
</p>
</div></td>
</tr>
<tr>
<td height="36" valign="top"><input type="hidden" name="site" value="ClickFormulas" /></td>
<td align="right"> </td>
</tr>
<tr>
<td height="36" valign="top"> </td>
<td align="right"><span class="texto23">
<label>
<input type="submit" name="Enviar" value="Enviar" />
</label>
</span></td>
</tr>
</form>
</table>
<p class="texto211" align="justify" style="color:#340C70"> </p></td>
</tr>
</table></td>
</tr>
</table>
</td>
</tr>
<tr>
<td align="left" valign="top"></td>
</tr>
</table></td>
</tr>
</table>
<div align="center"></div>
</body>
</html>
trabalhe-resp.php(script)
<?
extract($_POST);
$nome = $_POST["nome"];
$sexo = $_POST["sexo"];
$nascimento = $_POST["nascimento"];
$email = $_POST["email"];
$telefone = $_POST["telefone"];
$headers = "From: contato@clickformulas.com.br \n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: text/html; charset=\"utf-8\"\n";
//$headers .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
$mens = "Nome: ".$nome."<br>Sexo: ".$sexo."<br>Nascimento: ".$nascimento."<br>Email: ".$email."<br>Telefone: ".$telefone;
mail("teste@linksmonitorados.com.br", $nome, $mens, $headers);
?>
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Click Fórmulas</title>
</head>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" bgcolor="#FFFFFF">
<div id="apDiv2" style="display:none;"><img src="imagens/o_que_e_isso.png" /></div>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="600" align="center" valign="top"><table width="973" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="35%" height="61"><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><a href="index.htm"><img src="imagens/logo_click.jpg" alt="" width="332" height="184" border="0" /></a></td>
<td align="center"><div class="titulo">Seu Laboratório de Manipulação<br />
e Homeopatia na Internet</div>
<font face="Arial, Helvetica, sans-serif" color="#039" size="3"><br />
<strong>Compre com segurança! Pague menos e receba em casa!</strong></font><br /></td>
</tr>
<tr>
<td width="31%" height="20"> </td>
<td width="69%" height="20" align="center"> </td>
</tr>
<tr>
<td colspan="2" align="left"><table width="100%" border="0" cellspacing="10" cellpadding="10">
<tr>
<td height="267" valign="top" bgcolor="#E3EFFD"><p class="texto211"><strong class="titulo1" style="color:#340C70; font-size: 20px;">Entre em Contato</strong></p>
<hr color="#340C70" />
<p class="texto23" align="justify" style="color:#340C70">Seu email foi enviado com sucesso!<br />
<br />
Por favor, aguarde nosso retorno.</p> <p class="texto211" align="justify" style="color:#340C70"> </p></td>
</tr>
</table></td>
</tr>
<tr>
<td> </td>
<td align="center"> </td>
</tr>
<tr>
<td> </td>
<td align="center"> </td>
</tr>
</table>
</td>
</tr>
<tr>
<td align="left" valign="top"><? include('rodape.php'); ?></td>
</tr>
</table></td>
</tr>
</table>
</body>
</html>
A situação atual é que estou recebendo os dados do form mas o anexo não, ele não ta sendo tratado no script, e eu não sei realmente como adicionar o código do Andrey, se vocês puderem fazer essa parte e postar o código modificado ficarei muito agradecido.
Ja tentei por de varias maneiras, mas não funcionou. Vamos la gente, alguém me da uma luz! :o
To queimando a cabeça desde as 9 da manhã nesse código. Desculpa qualquer coisa pessoal
Cara, coloca meu código, você não vai conseguir receber o anexo por esse código ai ..
<?php
$arquivo = $_FILES[ 'arquivo' ];
$type = $arquivo[ 'type' ];
/**
* Teu Email
*/
$destinatario = 'teste@linksmonitorados.com.br';
/**
* Assunto
*/
$assunto = 'Anexo de arquivos';
$filename = sprintf( '%s.%s', md5(uniqid().time().$_FILES[ 'name' ]), pathinfo( $arquivo[ 'name' ], PATHINFO_EXTENSION ) );
if( move_uploaded_file( $arquivo[ 'tmp_name' ], 'dir/'.$filename ) ){
$base64 = base64_encode( file_get_contents( 'dir/'.$filename ) );
$boundary = date("dmYhis");
$headers = implode ( "\n", Array( "MIME-Version: 1.0 ",
"Content-Type: multipart/mixed; boundary=\"$boundary\" \r",
"$boundary " ) );
$nome = $_POST[ "nome" ];
$sexo = $_POST[ "sexo" ];
$nascimento = $_POST[ "nascimento" ];
$email = $_POST[ "email" ];
$telefone = $_POST[ "telefone" ];
$conteudo = "--$boundary \n";
$conteudo .= "Content-Type: text/html; charset=\"iso-8859-1\" \n";
$conteudo .= "Content-Transfer-Encoding: 8bits \n\n";
$conteudo .= sprintf( "Nome: %s \n Sexo: %s \n Nascimento: %s \n Email: %s \n Telefone: %s \n",
$nome, $sexo, $nascimento, $email, $telefone );
$conteudo .= "--$boundary \n";
$conteudo .= "Content-Type: $type; name=\"".$filename."\" \n";
$conteudo .= "Content-Transfer-Encoding: base64 \n";
$conteudo .= "Content-Disposition: attachment; filename=\"".$filename."\" \r\n" ;
$conteudo .= "$base64 \n";
$conteudo .= "--$boundary \n";
unlink( 'dir/'.$filename );
if( mail( $destinatario, $assunto, $conteudo, $headers ) ){
echo 'Email Enviado com sucesso';
}else{
echo 'Falha no envio do email';
}
}
?>
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Click Fórmulas</title>
</head>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" bgcolor="#FFFFFF">
<div id="apDiv2" style="display:none;"><img src="imagens/o_que_e_isso.png" /></div>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="600" align="center" valign="top"><table width="973" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="35%" height="61"><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><a href="index.htm"><img src="imagens/logo_click.jpg" alt="" width="332" height="184" border="0" /></a></td>
<td align="center"><div class="titulo">Seu Laboratório de Manipulação<br />
e Homeopatia na Internet</div>
<font face="Arial, Helvetica, sans-serif" color="#039" size="3"><br />
<strong>Compre com segurança! Pague menos e receba em casa!</strong></font><br /></td>
</tr>
<tr>
<td width="31%" height="20"> </td>
<td width="69%" height="20" align="center"> </td>
</tr>
<tr>
<td colspan="2" align="left"><table width="100%" border="0" cellspacing="10" cellpadding="10">
<tr>
<td height="267" valign="top" bgcolor="#E3EFFD"><p class="texto211"><strong class="titulo1" style="color:#340C70; font-size: 20px;">Entre em Contato</strong></p>
<hr color="#340C70" />
<p class="texto23" align="justify" style="color:#340C70">Seu email foi enviado com sucesso!<br />
<br />
Por favor, aguarde nosso retorno.</p> <p class="texto211" align="justify" style="color:#340C70"> </p></td>
</tr>
</table></td>
</tr>
<tr>
<td> </td>
<td align="center"> </td>
</tr>
<tr>
<td> </td>
<td align="center"> </td>
</tr>
</table>
</td>
</tr>
<tr>
<td align="left" valign="top"><? include('rodape.php'); ?></td>
</tr>
</table></td>
</tr>
</table>
</body>
</html>:(Andrey, obrigado pela paciência.
Então, eu coloquei seu código aqui. Mas agora o e-mail não chegou.
Ele avisa que a mensagem foi enviada com sucesso mas o e-mail não vem.
:(
Coloque esse código no lugar do trabalhe_resp.php
<?php
if( isset( $_POST[ 'Enviar' ] ) )
{
$arquivo = $_FILES[ 'arquivo' ];
$filename = sprintf( '%s.%s', md5(uniqid().time().$_FILES[ 'name' ]), pathinfo( $arquivo[ 'name' ], PATHINFO_EXTENSION ) );
if( move_uploaded_file( $arquivo[ 'tmp_name' ], './'.$filename ) )
{
$anexo = base64_encode( file_get_contents( './'.$filename ) );
$boundary = date("dmYhis");
$nome = $_POST[ "nome" ];
$sexo = $_POST[ "sexo" ];
$nascimento = $_POST[ "nascimento" ];
$email = $_POST[ "email" ];
$telefone = $_POST[ "telefone" ];
$destinatario = 'contato@clickformulas.com.br';
$assunto = 'Trabalhe Conosco';
$mensagem = sprintf( "Nome: %s \n Sexo: %s \n Nascimento: %s \n Email: %s \n Telefone: %s \n", $nome, $sexo, $nascimento, $email, $telefone );
$mensagem .= "--{$boundary}\n";
$mensagem .= "Content-Transfer-Encoding: 8bits\n";
$mensagem .= "Content-Type: text/html; charset=\"ISO-8859-1\"\n\n";
$mensagem .= "{$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";
$headers = "MIME-Version: 1.0\n";
$headers .= "From: {$nome} <{$email}>\r\n";
$headers .= "Content-type: multipart/mixed; boundary=\"{$boundary}\"\r\n";
$headers .= "{$boundary}\n";
unlink( './'.$filename );
if( mail( $destinatario, $assunto, $mensagem, $headers ) )
{
$result = 'Seu email foi enviado com sucesso!
<br/>
<br/>
Por favor, aguarde nosso retorno.';
}
else
{
$result = 'Falha no envio do email';
}
}
}
?>
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Click Fórmulas</title>
</head>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" bgcolor="#FFFFFF">
<div id="apDiv2" style="display:none;"><img src="imagens/o_que_e_isso.png" /></div>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="600" align="center" valign="top"><table width="973" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="35%" height="61"><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><a href="index.htm"><img src="imagens/logo_click.jpg" alt="" width="332" height="184" border="0" /></a></td>
<td align="center"><div class="titulo">Seu Laboratório de Manipulação<br />
e Homeopatia na Internet</div>
<font face="Arial, Helvetica, sans-serif" color="#039" size="3"><br />
<strong>Compre com segurança! Pague menos e receba em casa!</strong></font><br /></td>
</tr>
<tr>
<td width="31%" height="20"> </td>
<td width="69%" height="20" align="center"> </td>
</tr>
<tr>
<td colspan="2" align="left"><table width="100%" border="0" cellspacing="10" cellpadding="10">
<tr>
<td height="267" valign="top" bgcolor="#E3EFFD"><p class="texto211"><strong class="titulo1" style="color:#340C70; font-size: 20px;">Entre em Contato</strong></p>
<hr color="#340C70" />
<p class="texto23" align="justify" style="color:#340C70"><?php echo $result; ?></p><p class="texto211" align="justify" style="color:#340C70"> </p></td>
</tr>
</table></td>
</tr>
<tr>
<td> </td>
<td align="center"> </td>
</tr>
<tr>
<td> </td>
<td align="center"> </td>
</tr>
</table>
</td>
</tr>
<tr>
<td align="left" valign="top"><?php include('rodape.php'); ?></td>
</tr>
</table></td>
</tr>
</table>
</body>
</html>
Testa e diga se funcionou.
Ola Carlos, coloquei seu código aqui e o email não veio também.
Da mensagem de sucesso. Mas não chega nada.
Esperei alguns minutos mas não entrou nada no outlook nem acessando pelo webmail.
Não sei se faz diferença mas o servidor que uso é linux.
Obrigado pelas ajudas gente. :clap:
Mais alguma possibilidade?
Configure seu código para exibir TODAS as mensagens de erro, adicionando este código à primeira linha do script e teste novamente.
<?php
ini_set('display_errors', true);
error_reporting(E_ALL);
Meu servidor tbm é linux e está enviando email com anexo perfeitamente. :joia:
Tá estranho isso aí :ermm:
Nossa, nem me fale, mas eu conto com vocês :lol:
Recebi a mensagem de erro quando enviei:
Notice: Undefined index: name in /home/storage/5/d5/e7/anuncer/public_html/clickformulas/clickformulas/trabalhe_resp.php on line 8
No meu dreamweaver a linha 8 é
$filename = sprintf( '%s.%s', md5(uniqid().time().$_FILES[ 'name' ]), pathinfo( $arquivo[ 'name' ], PATHINFO_EXTENSION ) );
Que seria?
abraços
Olá,
Não sei se isso faz sentido, mas ali na ação do form está para outro arquivo, observe isso.
Outra coisa...
É muito complicado trabalhar com anexos em e-mails, existem diversos padrões a serem seguidos, enfim, eu recomendo você fazer o upload deste arquivo para uma pasta e posteriormente enviar o e-mail com o link direto, ai poderia ser até mais fácil.
Para parar de exibir na tela os dados da pessoa, tente tirar estes echo's:
Pois ai é que ele exibe os campos preenchidos e enviados por post.
Deixe somente as variáveis, sem o echo, acredito que isso possa resolver seus problemas!
Bom estudo e boa sorte!