Ir para conteúdo
Fórum Script Brasil
  • 0

Dúvida em formulário PHP


vanstival

Pergunta

Boa noite pessoal, estou programando um site em HTML e fazer o formulário de contato em PHP, porém tenho 0 de conhecimento sobre PHP

Poderiam ver o que está dando errado em meus códigos? 

Este é o html

<form class="style2 center-btn" name="contactform" method="post" action="sendmail.php">
                        <div class="row">
                            <div class="col-md-6">
                                <div class="field"><i class="pe-7s-user"></i><input type="text" placeholder="Nome" name="nome"></div>
                            </div>
                            <div class="col-md-6">
                                <div class="field"><i class="pe-7s-mail"></i><input type="email" placeholder="Email" name="email"></div>
                            </div>
                            <div class="col-md-12">
                                <div class="field"><i class="pe-7s-key"></i><input type="text" placeholder="Assunto" name="assunto"></div>
                            </div>
                            <div class="col-md-12">
                                <div class="field"><i class="pe-7s-pen"></i><textarea placeholder="Mensagem" name="mensagem"></textarea></div>
                            </div>
                            <div class="col-md-12">
                                <button type="submit" class="coloured-btn" value="ENVIAR">ENVIAR</button>
                            </div>
                        </div>
                    </form>

 

e este é o PHP 

<html>

<head>
    <title>Obrigado!</title>
</head>

<body>

<?php
$vnome=$_POST['nome'];
$vemail=$_POST['email'];
$vassunto=$_POST['assunto'];
$vmensagem=$_POST['mensagem'];

if(mail($vnome,$vemail,$vassunto,$mensagem, "to:vanessastival@outlook.com")) {

echo "nome: ".$vnome."<br/>email: ".$vemail."<br/> assunto: ".$vassunto."<br/> mensagem: ".$vmensagem."<br/>";

} else{

    echo "Erro";
}


?>


</body>

</html>

Obrigada!!

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

O erro está na sua linha da IF e da função mail().

 

Olha, vale lembrar que eu não concordo com uso de PHP para enviar EMAIL sem ter uma va.lidação perfeita que checa até o formato do email, sendo isso feito inicialmente em javascript e depois pelo próprio PHP.

Mas como aparentemente você está fazendo testes existem essas duas maneiras.

if(isset($vnome) && isset($vemail) && isset($vassunto) && isset($vmensagem)){
    mail("emaildosite@provedor.com",$vassunto,"De ".$vnome."\n\n".$vmensagem);
}else{
    echo "Houve algum erro no preenchimento do formulário";
}

Ou pra retornar o erro correto:

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $vnome=$_POST['nome'];
    $vemail=$_POST['email'];
    $vassunto=$_POST['assunto'];
    $vmensagem=$_POST['mensagem'];
	
    /* Declarar variavel para contar quantos campos foram preenchidos */
	$validador = 0;
	if(!empty($vnome)){
		$validador = $validador + 1;
	}else{
		echo "ERRO: Preencha o seu nome<br>\n";
	}
	if (!empty($vassunto)){
		$validador = $validador + 1;
	}else{
		echo "ERRO: Preencha o assunto<br>\n";
	}
	if (!empty($vemail)){
		$validador = $validador + 1;
	}else{
		echo "ERRO: Preencha seu email<br>\n";
	}
	if (!empty($vmensagem)){
		$validador = $validador + 1;
	}else{
		echo "ERRO: Preencha o corpo do email<br>\n<br>\n";
	}

	/* Condição para enviar o email */
	if ($validador == 4){
		/** TUDO CERTO ENVIAR EMAIL **/
		//coloque aqui o e-mail que deve receber a mensagem do formulário
		mail("email@provedordaempresa.com",$vassunto,"Email enviado por ".$vnome.".\n\n".$vmensagem."\n\n\nResponda para ".$vemail);
		echo "E-MAIL enviado com sucesso! Agora aguarde chegar na nossa caixa de entrada.<br>\n<br>\nMuito obrigado.";
	}else{
		/** SE ALGUM DOS ITEMS ESTIVER VAZIO **/
		echo "O seu email não foi enviado, veja acima os campos que faltaram preencher	";
	}
}else{
	echo "Você não pode acessar essa página diretamente, volte para o formulário, preencha o email e aperte ENVIAR";
}

Eu ia colocar um método para enviar uma cópia para o cliente por garantia, mas o servidor limita a um chamado da função mail() por requisição.

mail("email@provedordaempresa.com;".$vemail,...

Então se quiser mandar uma cópia altere

Editado por RpgBoss
Operadores, Metodo POST incluido
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...