Ir para conteúdo

POWERED BY:

Arquivado

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

josenilson

Formulário de contato

Recommended Posts

Olá Bom dia, Boa tarde , Boa noite !


peço a humilde ajuda dos membros do Fórum Imasters



Pessoal, o meu problema e o seguinte: tenho um domínio hospedado na locaweb, estou construindo um site bem principiante porem estou configurando a pagina FALE CONOSCO OU CONTATO que seja nesta pagina eu estou usando um exemplo de formulário que peguei na própria wiki do LOCA WEB ate ai tudo bem o formulário funciona testado já no domínio o e-mail chega normalmente porem a minha dificuldade esta sendo modificar esse formulário ao meu gosto.


o que desejo com ele é somente que; no formulário html tenha novos campos como por exemplo telefone de contato, ate ai tudo bem no html eu me viro porem na pagina php eu não estou conseguindo enviar essas novas informações para que cheguem no e-mail.



SEGUE O CÓDIGO QUE ESTOU USANDO NO MOMENTO.



<html>

<head>

<script language="javascript">


function checa_formulario(email){

if (email.nome.value == ""){

alert("Por Favor nao deixe o nome em branco!!!");

email.nome.focus();

return (false);

}


if (email.email.value == ""){

alert("Nao deixe o email destinatario em branco!!!");

email.email.focus();

return (false);

}


if (email.assunto.value == ""){

alert("Nao deixe o assunto em branco!!!");

email.assunto.focus();

return (false);

}


}

</script>

<title>Enviando texto</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<style type="text/css">

<!--

.email {

text-transform: lowercase;

}

.texto {

color: #0000FF

}

.style1 {color: #FF0000}


-->

</style>

</head>


<body onLoad="document.email.nome.focus();">

<form onsubmit="return checa_formulario(this)" action="envia.php" method="post" enctype="multipart/form-data" name="email">

<h1 align="center" class="style1"></h1>

<table width="50%" border="0" align="center">

<tr>

<td><div align="right"><span class="texto">Digite Seu Nome:</span></div></td>

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

</tr>

<tr>

<td><div align="right" class="texto">Seu E-mail</div></td>

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

</tr>

<tr>

<td><div align="right" class="texto">Telefone</div></td>

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

</tr>

<tr>

<td><div align="right" class="texto">Assunto</div></td>

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

</tr>

<tr>

<td><div align="right" class="texto">Mensagem</div></td>

<td><textarea name="mensagem" cols="50" rows="10" id="mensagem"></textarea></td>

</tr>

<tr>

<td><div align="right" class="texto">Anexo</div></td>

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

</tr>

<tr>

<td> </td>

<td><input type="submit" name="Submit" value="Enviar"></td>

</tr>

</table>

</form>

</body>

</html>




<?php


//Pega os dados postados pelo formulário HTML e os coloca em variaveis

if (eregi('tempsite.ws$|saletteesantos.com.br$|hospedagemdesites.ws$|websiteseguro.com$', $_SERVER[HTTP_HOST])) {

//substitua na linha acima a aparte locaweb.com.br por seu domínio.

$email_from='webmaster@saletteesantos.com.br'; // Substitua essa linha pelo seu e-mail@seudominio

}else {

$email_from = "email@" . $_SERVER[HTTP_HOST];

// Na linha acima estamos forçando que o remetente seja 'webmaster@',

// você pode alterar para que o remetente seja, por exemplo, 'contato@'.

}



if( PATH_SEPARATOR ==';'){ $quebra_linha="\r\n";


} elseif (PATH_SEPARATOR==':'){ $quebra_linha="\n";


} elseif ( PATH_SEPARATOR!=';' and PATH_SEPARATOR!=':' ) {echo ('Esse script não funcionará corretamente neste servidor, a função PATH_SEPARATOR não retornou o parâmetro esperado.');


}


//pego os dados enviados pelo formulário

$mensagem1 = $_POST["$pega_nome"];

$nome = $_POST["nome"];

$pega_email = $_POST["pega_email"];

$pega_telefone = $_POST["pega_telefone"];

$assunto = $_POST["assunto"];

$mensagem = $_POST["mensagem"];

$email = "webmaster@saletteesantos.com.br";

//formato o campo da mensagem

$mensagem = wordwrap( $mensagem, 50, "<br>", 1);


//valido os emails

if (!ereg("^([0-9,a-z,A-Z]+)([.,_]([0-9,a-z,A-Z]+))*[@]([0-9,a-z,A-Z]+)([.,_,-]([0-9,a-z,A-Z]+))*[.]([0-9,a-z,A-Z]){2}([0-9,a-z,A-Z])?$", $email)){


echo"<center>Digite um email valido</center>";

echo "<center><a href=\"javascript:history.go(-1)\">Voltar</center></a>";

exit;


}


$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" . $quebra_linha . "";

$mens .= "Content-Transfer-Encoding: 8bits" . $quebra_linha . "";

$mens .= "Content-Type: text/html; charset=\"ISO-8859-1\"" . $quebra_linha . "" . $quebra_linha . ""; //plain

$mens .= "$mensagem" . $quebra_linha . "";

$mens .= "--$boundary" . $quebra_linha . "";

$mens .= "Content-Type: ".$arquivo["type"]."" . $quebra_linha . "";

$mens .= "Content-Disposition: attachment; filename=\"".$arquivo["name"]."\"" . $quebra_linha . "";

$mens .= "Content-Transfer-Encoding: base64" . $quebra_linha . "" . $quebra_linha . "";

$mens .= "$anexo" . $quebra_linha . "";

$mens .= "--$boundary--" . $quebra_linha . "";


$headers = "MIME-Version: 1.0" . $quebra_linha . "";

$headers .= "From: $email_from " . $quebra_linha . "";

$headers .= "Return-Path: $email_from " . $quebra_linha . "";

$headers .= "Content-type: multipart/mixed; boundary=\"$boundary\"" . $quebra_linha . "";

$headers .= "$boundary" . $quebra_linha . "";



//envio o email com o anexo

mail($email,$assunto,$mens,$headers, "-r".$email_from);


echo"Email enviado com Sucesso!";


}


//se nao tiver anexo

else{


$headers = "MIME-Version: 1.0" . $quebra_linha . "";

$headers .= "Content-type: text/html; charset=iso-8859-1" . $quebra_linha . "";

$headers .= "From: $email_from " . $quebra_linha . "";

$headers .= "Return-Path: $email_from " . $quebra_linha . "";


//envia o email sem anexo

mail($email,$assunto,$mensagem,$headers, "-r".$email_from);



echo"Email enviado com Sucesso!";

echo "$nome";

}


?>



nesse formulário a unica coisa que chega no e-mail e os campos de assunto e a mensagem


o que quero e fazer que os campos nome e-mail e telefone cheguem também, porem estes serão digitados pela pessoa que esta


mandando o contato. Deis de já agradeço.


Compartilhar este post


Link para o post
Compartilhar em outros sites

Basta criar o campo no HTML e receber o seu valor usando o array $_POST, seguindo o padrão que já tem no seu código.

Depois basta concatenar o valor do novo campo onde quiser que ele apareça na mensagem.

 

Alguns links e dicas úteis:

Tutorial sobre Sistema de Cadastro simples

Concatenação de Strings

Envio de Emails com PHPMailer, que é mais seguro e confiável que usar mail()

 

Sobre eregi(), essa função está obsoleta há anos e nem existe mais no PHP 7. Use preg_match.

 

Dica Habilite todas as exibições de erro, como mostrado neste tópico, na Orientação No. 2. Isso vai fazer o PHP apontar as possíveis falhas dos seus códigos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Basta criar o campo no HTML e receber o seu valor usando o array $_POST, seguindo o padrão que já tem no seu código.

Depois basta concatenar o valor do novo campo onde quiser que ele apareça na mensagem.

 

Alguns links e dicas úteis:

Tutorial sobre Sistema de Cadastro simples

Concatenação de Strings

Envio de Emails com PHPMailer, que é mais seguro e confiável que usar mail()

 

Sobre eregi(), essa função está obsoleta há anos e nem existe mais no PHP 7. Use preg_match.

 

Dica Habilite todas as exibições de erro, como mostrado neste tópico, na Orientação No. 2. Isso vai fazer o PHP apontar as possíveis falhas dos seus códigos

Muito Obrigado pela atenção, mas se possível tem como modificar o código citado acima onde os campos nome, telefone, e email tambem cheguem na mensagem enviada ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito Obrigado pela atenção, mas se possível tem como modificar o código citado acima onde os campos nome, telefone, e email tambem cheguem na mensagem enviada ?

bem ate o momento conseguir revolver meu caso pela metade falta pouco para conseguir o que eu quero.

eu fiz o seguinte criem no envia php uma variavel com o nome $mensagem2 nesta eu concatenei os outros campos que eu quero que cheguem na mensagem como $mensagem2 = $nome.$pega_email.$pega_telefone; por fim eu concatenei mensagem2 a mensagem

 

//envia o email sem anexo
mail($email,$assunto,$mensagem.$mensagem2,$headers, "-r".$email_from);
ate que funcionou quando recebo o email vem os caracteres que foram acionados nos campos do HTMl digite seu nome, Seu E-mail, Telefone.
porem quando chega no E-mail esta vindo tudo junto sem organização, tem como me ajudar a organizar isso tipo assim
Nome
E-mail
Telefone
e mensagem
e isso que estou tentando fazer agora somente dar as quebras de linhas.
segue o código atual .
<?php
//Pega os dados postados pelo formulário HTML e os coloca em variaveis
if (eregi('tempsite.ws$|saletteesantos.com.br$|hospedagemdesites.ws$|websiteseguro.com$', $_SERVER[HTTP_HOST])) {
//substitua na linha acima a aparte locaweb.com.br por seu domínio.
$email_from='webmaster@saletteesantos.com.br'; // Substitua essa linha pelo seu e-mail@seudominio
}else {
$email_from = "email@" . $_SERVER[HTTP_HOST];
// Na linha acima estamos forçando que o remetente seja 'webmaster@',
// você pode alterar para que o remetente seja, por exemplo, 'contato@'.
}
if( PATH_SEPARATOR ==';'){ $quebra_linha="\r\n";
} elseif (PATH_SEPARATOR==':'){ $quebra_linha="\n";
} elseif ( PATH_SEPARATOR!=';' and PATH_SEPARATOR!=':' ) {echo ('Esse script não funcionará corretamente neste servidor, a função PATH_SEPARATOR não retornou o parâmetro esperado.');
}
//pego os dados enviados pelo formulário
$mensagem2 = $nome.$pega_email.$pega_telefone;
$nome = $_POST["nome"];
$pega_email = $_POST["pega_email"];
$pega_telefone = $_POST["pega_telefone"];
$assunto = $_POST["assunto"];
$mensagem = $_POST["mensagem"];
$email = "webmaster@saletteesantos.com.br";
//formato o campo da mensagem
$mensagem = wordwrap( $mensagem, 50, "<br>", 1);
//valido os emails
if (!ereg("^([0-9,a-z,A-Z]+)([.,_]([0-9,a-z,A-Z]+))*[@]([0-9,a-z,A-Z]+)([.,_,-]([0-9,a-z,A-Z]+))*[.]([0-9,a-z,A-Z]){2}([0-9,a-z,A-Z])?$", $email)){
echo"<center>Digite um email valido</center>";
echo "<center><a href=\"javascript:history.go(-1)\">Voltar</center></a>";
exit;
}
$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" . $quebra_linha . "";
$mens .= "Content-Transfer-Encoding: 8bits" . $quebra_linha . "";
$mens .= "Content-Type: text/html; charset=\"ISO-8859-1\"" . $quebra_linha . "" . $quebra_linha . ""; //plain
$mens .= "$mensagem" . $quebra_linha . "";
$mens .= "--$boundary" . $quebra_linha . "";
$mens .= "Content-Type: ".$arquivo["type"]."" . $quebra_linha . "";
$mens .= "Content-Disposition: attachment; filename=\"".$arquivo["name"]."\"" . $quebra_linha . "";
$mens .= "Content-Transfer-Encoding: base64" . $quebra_linha . "" . $quebra_linha . "";
$mens .= "$anexo" . $quebra_linha . "";
$mens .= "--$boundary--" . $quebra_linha . "";
$mens .= "$mensagem2" . $quebra_linha . "";
$headers = "MIME-Version: 1.0" . $quebra_linha . "";
$headers .= "From: $email_from " . $quebra_linha . "";
$headers .= "Return-Path: $email_from " . $quebra_linha . "";
$headers .= "Content-type: multipart/mixed; boundary=\"$boundary\"" . $quebra_linha . "";
$headers .= "$boundary" . $quebra_linha . "";
//envio o email com o anexo
mail($email,$assunto,$mens,$headers, "-r".$email_from);
echo"Email enviado com Sucesso!";
}
//se nao tiver anexo
else{
$headers = "MIME-Version: 1.0" . $quebra_linha . "";
$headers .= "Content-type: text/html; charset=iso-8859-1" . $quebra_linha . "";
$headers .= "From: $email_from " . $quebra_linha . "";
$headers .= "Return-Path: $email_from " . $quebra_linha . "";
//envia o email sem anexo
mail($email,$assunto,$mensagem.$mensagem2,$headers, "-r".$email_from);
echo"Email enviado com Sucesso!";
echo "$mensagem2";
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Basta usar o <br> para gerar a quebra de linha:

$mensagem2 = $nome.'<br>'.$pega_email.'<br>'.$pega_telefone;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado ESerra, fiz como no seu exemplo porem a bendita tag nome

não esta pulando uma linha ela fica junta com o corpo da mensagem

somente pulou linha o emal e telefone.

 

segue o código como esta atualmente, quando a mensagem chega e dessa forca

 

teste nome
email@email
555-555-555

 

sendo que teste e o corpo da mensagem e nome e a tag pega_nome ou variavel que seja ,

só ela que não esta pulando de linha .

 

//envia o email sem anexo
mail($email,$assunto,$mensagem.$mensagem2 = $pega_nome.'<br>'.$pega_email.'<br>'.$pega_telefone,$headers, "-r".$email_from);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tchê, é só usar a cabeça... se usando <br> gera uma quebra de linha, então inclua mais um <br> e o problema estará resolvido...

$mensagem2 = '<br>'.$nome.'<br>'.$pega_email.'<br>'.$pega_telefone;

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.