• 0
Sign in to follow this  
vanstival

Dúvida em formulário PHP

Question

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:[email protected]")) {

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

} else{

    echo "Erro";
}


?>


</body>

</html>

Obrigada!!

Share this post


Link to post
Share on other sites

1 answer to this question

Recommended Posts

  • 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("[email protected]",$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 protected]",$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 protected];".$vemail,...

Então se quiser mandar uma cópia altere

Edited by RpgBoss
Operadores, Metodo POST incluido

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this