Envia Email
Olá amigos, baixei um template de um site responsivo bootstrap.
A minha duvida é, o envia email precisa fazer alguma validação ?
A minha duvida é, o envia email precisa fazer alguma validação ?
César Costa
Curtidas 0
Melhor post
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:
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
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...
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
01/11/2016
Seria na validação do contato.
O famoso envia - me.
Irei fazer em PHP , para enviar a mensagem no email.
O famoso envia - me.
Irei fazer em PHP , para enviar a mensagem no email.
GOSTEI 0
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 ?
Muito obrigado pela Atenção André...
A proposito você tem conhecimentos com php ?
GOSTEI 0