Ir para conteúdo
Fórum Script Brasil

Iniciando no php - Meu primeiro Form (funcionando)


Everton_Pabon

Posts Recomendados

então pessoal, esse é meu primeiro post aqui, to estudando php faz um mês, nunca programei nada mas to gostando de aprender

To postando ai meu primeiro programa, um form de contato e gostaria que vocês dessem uma olhada pra ver se meu codigo ta bom pois quem ta começando ainda não tem as manha de saber se o codigo ta limpo ou não..

tirei como base alguns exemplos da net e tambem de livros e montei o form de acordo com meu gosto, pra estudo mesmo mas ele ta funcionando beleza, quem quiser usar tá aí..

Abraço!

formulario.php

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Formulário de contato</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form action="enviar.php" method="post">
Seu Nome<br><input type="text" name="nome" size="50"><br>
Seu Email<br><input type="text" name="remetente" size="50"><br>
Escolha a opção de seu interesse:<br>
<select name="departamento" size="1">
<option value="comprar">Comprar</option>
<option value="informacoes">Informações sobre Produto</option>
<option value="lojista">Lojista</option>
<option value="anunciar">Anunciar no Site</option>
<option value="outros">Outros</option>
</select><br>
Assunto<br><input type="text" name="assunto" size="50"><br>
Mensagem<br><textarea name="mensagem" rows="5" cols="50"></textarea><br>
<input type="submit" value="Enviar"> <input type="reset" value="Apagar">
</form>

</body>
</html>
enviar.php
<?php

$nome = $_POST["nome"]; 
$assunto = $_POST["assunto"]; 
$mensagem = $_POST["mensagem"]; 
$departamento = $_POST["departamento"]; // lista de opções
$remetente = $_POST["remetente"]; 
$destino = "fulano@site.com"; // Email do seu site aqui

// Aqui vai bloquear inserçao de html palos campos do formulario
// na verdade não bloqueia, apenas trasnforma em texto :)
$nome_ok = htmlspecialchars($nome); 
$assunto_ok = htmlspecialchars($assunto);
$mensagem_ok = htmlspecialchars($mensagem);
$remetente_ok = htmlspecialchars($remetente);

// cabeçalho do email
$headers = "From: $nome_ok - $departamento - <$remetente_ok>\r\n"; 
$headers .= "Content-Type: text/html\n";
$headers .= "MIME-Version: 1.0\n";

// organizaçao da mensagem no email
$msg = "Email enviado através do site:<br><br>";
$msg .= "<strong>Nome:</strong><br>$nome_ok<br>";
$msg .= "<strong>Email:</strong><br>$remetente_ok<br>";
$msg .= "<strong>Departamento:</strong><br>$departamento<br>";
$msg .= "<strong>Assunto:</strong><br>$assunto_ok<br>";
$msg .= "<strong>Mensagem:</strong><br>$mensagem_ok";

// aqui vai verificar se algum campo do formulario está em branco, 
// retornando uma mensagem de erro
if(empty($nome_ok))
{ 
echo "&lt;script type='text/javascript'>
alert ('Você deve preencher seu Nome!');history.back();
</script>"; 
exit; 
}
if(empty($remetente_ok) or strstr($remetente_ok, '@')==FALSE) // se não colocar arroba(@) ou deixar em branco da erro
{ 
echo "&lt;script type='text/javascript'>
alert ('Você deve preencher seu Email corretamente!');history.back();
</script>"; 
exit; 
}
if(empty($assunto_ok))
{ 
echo "&lt;script type='text/javascript'>
alert ('Você deve preencher o campo Assunto!');history.back();
</script>"; 
exit; 
}
if(empty($mensagem_ok))
{ 
echo "&lt;script type='text/javascript'>
alert ('Você deve digitar uma Mensagem!');history.back();
</script>"; 
exit; 
}

// aqui envia o email 
mail($destino, $assunto_ok, $msg, $headers);
 {
echo "&lt;script type='text/javascript'>
alert ('Obrigado por entrar em contato!');
</script>"; 
echo "&lt;script>location.href='../'</script>"; // nesta linha manda voce para a pagina inicial do site (pode alterar)
}
?>

Link para o comentário
Compartilhar em outros sites

Movido de PHP para Avaliações pois se tratra de uma avaliação não uma dúvida.

Legal que você esteja aprendendo PHP, parabéns :)

Quanto a avaliação, está bom para quem está aprendendo mas para ficar legal você deve tratar os dados vindos do formulário, valida-los, como no caso do e-mail, você deveria pelo ao menos checar se o usuário digitou o @,, exemplo:

if(!str_replace("@","@",$_POST["remetente"]){
die("email invalido");
}

Tb deveria verificar se a função mail foi realmente executada com try...catch ou if

E também seria legal você checar se ela está ativada com function_exists()

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

×   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
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...