你好,我有一个联系表,我已经成功地验证了这些字段是否已填写,但我不知道如何使电子邮件具有正确的格式,如果没有抛出错误,我如何验证其中的内容该字段包含@,或者如何进行验证?我通过了我所拥有的:
HTML
<div id="contact_form">
<form action="confFormulario3.php" id="form1" name="form1" method="post">
<input type="text" id="email" class="boton" name="email" placeholder="Tu email">
<input type="text" id="nombre" class="boton" name="nombre" placeholder="Cómo te llamas">
<textarea name="mensaje" id="mensaje" class="boton" placeholder="En qué podemos ayudarte?"></textarea>
<input type="submit" name="Submit" id="buttonEnviar" class="boton" value="ENVIAR">
</form>
</div>
PHP
<?php
/*Capturamos las variables del POST con operadores ternarios*/
$email= ( empty($_POST["email"]) ) ? NULL : $_POST["email"];
$name= ( empty($_POST["nombre"]) ) ? NULL : $_POST["nombre"];
$message= ( empty($_POST["mensaje"]) ) ? NULL : $_POST["mensaje"];
/*Verificamos que los tres datos fueron posteados*/
if ($email && $name && $message){
$para = '[email protected]';
$asunto = "mensaje de la web de el punto!!!!!!!!!!!!";
$mailheader = "From: ".$email."\r\n";
$mailheader .= "Reaply-To:".$email."\r\n";
$mailheader .= "Content-type: text/html; charset=utf-8\r\n";
$MESSAGE_BODY = "Nombre: ".$name."\n";
$MESSAGE_BODY .= "\n<br>Email: ".$email."\n";
$MESSAGE_BODY .= "\n<br>Mensaje: ".nl2br($message)."\n";
mail($para, $asunto, $MESSAGE_BODY, $mailheader) or die("error al enviar mensaje, intente nuevamente");
echo "<script>
alert('Gracias por tu contacto! en breves nos estaremos comunicando 1');
</script>";
}else{
//Aquí puedes también redirigir con un mensaje de error
echo "<script>alert('Controla la informacion ingresada, el mensaje NO se ha enviado');</script>";
}
?>
在这种情况下,进行双重验证很方便:在客户端和服务器端。
在客户端
由于 HTML5 有
email
元素input
的类型,所以你把这个:它将在客户端验证电子邮件。
服务器端
您可以使用
filter_var
来验证电子邮件。由于它
filter_var
返回经过验证的数据 orFALSE
,因此您可以像这样直接捕获电子邮件:然后
if
就像你在代码中最初的样子:要解决您描述的问题,有两种方法可以解决。
第一个选项:
在这种情况下,您可以做的最简单的事情就是更改以这种方式键入电子邮件的输入的
type="text"
属性type="email"
。第二种选择
使用用于验证表单的 Jquery Validation 插件,除此之外,您还可以显示自己的错误消息。
在这里,我给您留下了应用 Jquery Validation 插件的表单外观代码
1°拥有HTML表单
2° 创建一个执行相应验证的 Javascript 文件,我将调用它
validacion.js
注意:为此,不要忘记包含插件库并
validacion.js
在 HTML 表单所在的文件中进行调用,否则它将无法正常工作。我建议您阅读其官方页面上的文档,因为我向您展示的示例是您可以做的许多事情中的基本之一。https://jqueryvalidation.org/documentation/
也许这可以帮助您进行所需的验证并插入到您的数据库中:
HTML (contact.html)
JS(验证.js)
在您的 php 文件中,您所要做的就是获取数据并将其插入到您的数据库中,其余的(验证)将其留给 JS 文件。我希望它对你有帮助!