Envia Email

PHP

01/11/2016

Olá amigos, baixei um template de um site responsivo bootstrap.
A minha duvida é, o envia email precisa fazer alguma validação ?
César Costa

César Costa

Curtidas 0

Melhor post

Andre Alves

Andre Alves

04/11/2016

César, fiz um exemplo usando somente HTML e PHP do que seria uma página de contato, onde o usuário envia sua mensagem para os seus administradores ou outros responsáveis. A função que envia a mensagem está na mesma página, porém, você deve se lembrar de que ela só funciona quando o site está hospedado.

Veja:

<!DOCTYPE HTML>  
<html>
<head>
<style>
.error {color: #FF0000;}
</style>
</head>
<body>  

<?php
// definição das variáveis
$nameErr = $emailErr = $sexoErr = $commentErr = $subjectErr = "";
$name = $email = $sexo = $comment = $subject = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
  if (empty($_POST["name"])) {
    $nameErr = "Nome é obrigatório";
  } else {
    $name = test_input($_POST["name"]);
    // verifica se o nome contém apenas letras e números
    if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
      $nameErr = "Apenas letras e espaços em branco são aceitos"; 
    }
  }
  
  if (empty($_POST["email"])) {
    $emailErr = "Email é obrigatório";
  } else {
    $email = test_input($_POST["email"]);
    // verifica se o e-mail é válidos
    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
      $emailErr = "Formato de e-mail inválido"; 
    }
  }

  if (empty($_POST["subject"])) {
    $subjectErr = "Assunto é obrigatório";
  } else {
    $subject = test_input($_POST["subject"]);
  }
  
  if (empty($_POST["comment"])) {
    $commentErr = "Mensagem é obrigatório";
  } else {
    $comment = test_input($_POST["comment"]);
  }

  if (empty($_POST["sexo"])) {
    $sexoErr = "Sexo é obrigatório";
  } else {
    $sexo = test_input($_POST["sexo"]);
  }
}

function test_input($data) {
  $data = trim($data);
  $data = stripslashes($data);
  $data = htmlspecialchars($data);
  return $data;
}
?>

<h2>Formulário de Contato</h2>
<p><span class="error">* campo obrigatório.</span></p>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">  
  Nome: <input type="text" name="name" value="<?php echo $name;?>">
  <span class="error">* <?php echo $nameErr;?></span>
  <br><br>
  E-mail: <input type="email" name="email" value="<?php echo $email;?>">
  <span class="error">* <?php echo $emailErr;?></span>
  <br><br>
  Assunto: <input type="text" name="subject" value="<?php echo $subject;?>">
  <span class="error">* <?php echo $subjectErr;?></span>
  <br><br>
  Mensagem: <textarea name="comment" rows="5" cols="40"><?php echo $comment;?></textarea>
  <span class="error">* <?php echo $commentErr;?></span>
  <br><br>
  Sexo:
  <input type="radio" name="sexo" <?php if (isset($sexo) && $sexo=="f") echo "checked";?> value="female">Feminino
  <input type="radio" name="sexo" <?php if (isset($sexo) && $sexo=="m") echo "checked";?> value="male">Masculino
  <span class="error">* <?php echo $sexoErr;?></span>
  <br><br>
  <input type="submit" name="submit" value="Submit">  
</form>

<?php
header ('Content-type: text/html; charset=UTF-8'); 
$to = $email; // e-mail do remetente
$subj = $subject; // assunto
$rem = "seu_endereco_de_email"; // e-mail do destinatário
$linguagem = "\\nContent-type: text/html;"; // formato da mensagem
$html = $comment; // mensagem

mail("$to", "$subj", "$html", "from:$rem".$linguagem); // envia o e-mail

?>
</body>
</html>
GOSTEI 1

Mais Respostas

Andre Alves

Andre Alves

01/11/2016

Olá, César!

Bem, se for só o template que você baixou, a parte de validação terá que ser feita sim em alguma linguagem de programação. Agora, poderia me dar mais detalhes sobre "validação"?
É validação do input, de controle de envio...
GOSTEI 0
César Costa

César Costa

01/11/2016

Seria na validação do contato.
O famoso envia - me.
Irei fazer em PHP , para enviar a mensagem no email.
GOSTEI 0
César Costa

César Costa

01/11/2016

Otimo, vou implementar e fazer os testes.
Muito obrigado pela Atenção André...
A proposito você tem conhecimentos com php ?
GOSTEI 0
POSTAR