Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia, estou tentando aprender PHP e tentando criar um formulário mas não está fazendo o envio.. Alguém pode dizer onde está o erro?
CÓDIGO FORMULÁRIO
<form action="form.php" method="POST">
<input name="nome" type="text" class="campos" id="nome" size="58" value="Digite o seu nome" onfocus="if(this.value == 'Digite o seu nome') this.value='';" onblur="if(this.value == '') this.value='Digite o seu nome';" /><br />
<input name="email" type="text" class="campos" id="email" size="58" value="Digite o seu e-mail" onfocus="if(this.value == 'Digite o seu e-mail') this.value='';" onblur="if(this.value == '') this.value='Digite o seu e-mail';" /><br />
<input name="assunto" type="text" class="campos" id="assunto" size="58" value="Digite o assunto" onfocus="if(this.value == 'Digite o assunto') this.value='';" onblur="if(this.value == '') this.value='Digite o assunto';" /><br />
<textarea name="comentario" cols="54" rows="5" class="campos" id="comentario" value="Digite o texto da mensagem" onfocus="if(this.value == 'Digite o texto da mensagem') this.value='';" onblur="if(this.value == '') this.value='Digite o texto da mensagem';" />Digite o texto da mensagem</textarea><br />
<input name="EnviarBTN" type="submit" class="botao" id="EnviarBTN" value="ENVIAR E-MAIL" />
<input name="action" type="hidden" id="action" value="ENVIAR_MAIL" />
</form>
CÓDIGO DO FORM.PHP
<?php
$nome = $_POST["nome"];
$email = $_POST["email"];
$assunto = $_POST["assunto"];
$comentario = $_POST["comentario"];
$erro = 0;
$mensagem = "Contato SAUTO.com.br\n\n";
$mensagem .= "Nome: $nome\n";
$mensagem .= "E-mail: $email\n";
$mensagem .= "Assunto: $assunto\n";
$mensagem .= "Mensagem: $comentario\n";
mail("silviormf@hotmail.com","Contato SAUTO.com.br", $mensagem, "From: $email\nReply-to: $email", "Content-Type: text/html; charset=us-ascii\n");
if ($nome == "Digite o seu nome")
{ echo '<script>alert("Preencha o campo NOME corretamente."); location="javascript:history.go(-1)";</script>'; exit; $erro = 1; }
if (strstr ($email, '@')==FALSE)
{ echo '<script>alert("Preencha o campo E-MAIL corretamente."); location="javascript:history.go(-1)";</script>'; exit; $erro = 1; }
if ($assunto == "Digite o assunto")
{ echo '<script>alert("Preencha o campo ASSUNTO corretamente."); location="javascript:history.go(-1)";</script>'; exit; $erro = 1; }
if ($comentario == "Digite o texto da mensagem")
{ echo '<script>alert("Preencha o campo MENSAGEM corretamente."); location="javascript:history.go(-1)";</script>'; exit; $erro = 1; }
// VERIFICA SE NÃO HOUVE ERRO
if($erro == 0)
{ echo '<script>alert("Mensagem enviada com sucesso! A Sauto Tecnologia agradece o contato."); location="index.php";</script>'; }
?>Com relação ao que o Periscuelo disse, eu acho que está errado...
A função mail() envia emails para qualquer domínio.
Eu nunca consegui fazer essa função funcionar no meu localhost, somente quando está publicado.
Se precisar de alguma ajuda com o PHPMailer, é só chamar!
:D
-> www.quizme.com.br/lucasmoreira
Lucas a função mail depende da configuração do servidor de cada provedor.
Existem provedores que para evitar spam não permitem que se use a função mail sem
especificar um remetente do dominio. Não quis dizer que não envia e-mails para outros domínios,
mas sim que necessita estar hospedado informando o remetente correto.
Por isso indiquei a classe PHPMailer pois mesmo localmente ela funciona.
Abraços.
Boa tarde! Mesmo definindo p/ um e-mail do servidor do domínio hospedado, continua sem enviar.
Pode dar mais uma lida no código e ver se a lógica está correta e onde errei..
E sobre o PHPMailer, como adapto meu código para que funcione nessa função?
Abraços
Para usar o PHPMailer:
require_once("class.phpmailer.php");
$mail = new PHPMailer();
$mail->Port = 25;
$mail->IsSMTP();
$mail->Host = "smtp.seudominio.com.br"; // Coloque o SMTP aqui
$mail->SMTPAuth = true; // Informa que deve-se autenticar no servidor de saída de emails
$mail->Username = "usuário"; // Usuário SMTP
$mail->Password = "senha"; // Senha SMTP
$mail->From = "email@remetente.com.br";
$mail->FromName = "Nome do remetente";
$mail->AddBCC("email_bcc","Nome BCC"); // Este destinatário estará em cópia oculta no email
$mail->AddReplyTo("email@responderpara.com.br","Nome Responder Para");
$mail->Subject = "Assunto do email";
$mail->AltBody = "Se o leitor de emails do destinatário não suportar HTML, essa mensagem é mostrada";
$mail->MsgHTML("Mensagem HTML do corpo do email");
$mail->AddAddress("email@destinatario.com.br", "Nome do Destinatário");
$mail->Send();
Faça o download do PHPMailer em http://phpmailer.worxware.com/ (faça o download para a versão certa do seu PHP)
Este é um exemplo simples de uso do PHPMailer. Eu me autentico no Gmail usando TLS. O PHPMailer é f***!
Qualquer dúvida "tamos aí"
http://forum.imasters.com.br/public/style_emoticons/default/clap.gif
A função mail só trabalha com e-mails da própria hospedagem.
Ou seja para seu script funcionar teria que estar hospedado no provedor do hotmail.
Ex: se eu e-mail é periscuelo@locaweb.com.br e meu provedor é a locaweb o script
tem de estar hospedado na locaweb para que funcione.
Pesquise no google sobre a classe PHPMailer.
Ela resolve seu problema pois com ela não há a necessidade do script estar hospedado
no mesmo local do e-mail.
Abraços.