Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde pessoal.
Criei um formulário de contato no meu site, ja vi 3 vídeo aulas, fiz tudo certinho, vi se o php do host ta habilitado e nunca funciona.
Por favor peço que me ajudem porque sou bem leigo em php.
Código html:
<?php
$envio=0;
@$envio= $_REQUEST['envio'];
?>
<!DOCTYPE html>
<html lang="pt-br">
<body>
<?php if($envio==enviado): ?>
<h3>Mensagem enviada. Agradecemos seu contato!</h3>
<?php else: ?>
<form id="formulario" method="post" action="sendmail.php">
<input class="txt" type="text" name="nome" placeholder="Seu nome" required><input class="txt" type="text" name="empresa" placeholder="Sua empresa" required>
<input class="txt" type="text" name="servico" placeholder="O que você precisa" required> <br/><br/>
<input class="txt" type="text" name="numero" placeholder="Seu número" required>
<input class="txt email" type="text" name="email" placeholder="seu@email.com" required> <br/><br/><br/>
<div id="btn" class="animated slideInLeft">
<input class="btn" type="submit" value="Enviar"/><hr class="btn" width="35px" size="2px" color="#fff" align="right" />
</div>
</form>
<?php endif; ?>
</body>
</html><?php
$to= "contato@sunnydesign.com.br";
$subject= "Contato pelo Site";
$nome= $_POST['nome'];
$empresa= $_POST['empresa'];
$servico= $_POST['servico'];
$numero= $_POST['numero'];
$email= $_POST['email'];
$corpo= "<strong>Mensagem de contato</strong><br/><br/>";
$corpo .="<br/><strong>Nome: </strong> $nome";
$corpo .="<br/><strong>Empresa: </strong> $empresa";
$corpo .="<br/><strong>Serviço: </strong> $servico";
$corpo .="<br/><strong>Numero: </strong> $numero";
$corpo .="<br/><strong>E-mail: </strong> $email";
$header .= "Content-Type: text/html; charset= utf-8\n";
$header="From: $email Reply-to $email\n";
@mail($to,$subject,$corpo,$header);
header("location:formulario.php?envio=enviado");
?>>
Comece retirando o arroba "@" antes das variáveis e funções. Este serve para inibir os erros e warnings gerados pelo PHP.
Este trecho:
<?php if($envio==enviado): ?>
Sua condição está comparando se o valor da variável é igual a "constante" enviado. Quando na verdade o correto é tratar como VALOR:
<?php if($envio=='enviado'): ?>
Valeu cara. Mas fiz o que você disse e mesmo assim não funciona. Não sei mais o que fazer :(
É só ter um pouco de atenção. Note que no action do seu formulário, a página de destino é sendmail.php
enquanto que sua página de redirecionamento é "formulário.php" no seu caso a página que enviar o email deve se chamar sendmail.php e no location você deve informar a mesma página sendmail.php
Realmente não tem segredo cara, recomendo você estudar mais. Se estiver tentando enviar isso de seu localhost, não vai funcionar, salvo se você tiver servidor de email instalado, o que eu duvido muito que tenha.
Comece retirando o arroba "@" antes das variáveis e funções. Este serve para inibir os erros e warnings gerados pelo PHP.
Este trecho:
<?php if($envio==enviado): ?>
Sua condição está comparando se o valor da variável é igual a "constante" enviado. Quando na verdade o correto é tratar como VALOR:
<?php if($envio=='enviado'): ?>