привет у меня формуляр контакта есть и мне удалось санкционировать, что поля были наполнены, но не, как способствовать тому, чтобы у электронной почты был правильный формат и а он бросал ошибку, как я могу проверять, что он содержал контент в этом поле, или как делается это утверждение? Я перемещаю то, что у меня есть:
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 = 'timondigitalweb@gmail.com';
$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>";
}
?>
Чтобы решать проблему, которую ты описываешь, есть два способа это делать. Первые
opciГіn:
Для этого случая mГЎs простой, который ты можешь делать, состоит в том, чтобы менять признак неудара в лунку где digita электронная почта этой формы type="text"
на type="email"
. Вторые
<input type="email" id="email" class="boton" name="email" placeholder="Tu email">
opciГіn
Использовать plugin Хкери Валидатион, с которым ты санкционируешь формуляр и ademГЎs этого смоги показывать твои собственные сообщения ошибки.
AquГ - оставил тебя cГіdigo как quedarГ - в твой формуляр применяя plugin Хкери Валидатион
1В ° Иметь формульный 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>
2В ° Создавать файл Javascript, где реализуют соответствующие утверждения, в который llamarГ© validacion.js
$(function(){
$('#form1').validate({
//En rules defines los campos que quieres validar, con el nombre de los id de cada input
rules: {
email: {
required: true,
email: true
},
nombre: {
required: true,
minlength: 3
}
},
//En messages describes el mensaje que quieres el usuario visualice por cada cada validación que aplicaste en rules
messages: {
email: {
required: "Este campo es obligatorio",
email: "El email no tiene el formato correcto"
},
nombre: {
required: "Este campo es obligatorio",
minlength: "El nombre debe tener al menos 3 caracteres"
}
}
}
});
ЗАМЕЧАЕТ: Для того, чтобы это функционировало, ты не забыл включить книжный магазин plugin и сделать вызов validacion.js
внутри файла, где находится твой формульный HTML, противоположный случай не funcionarГЎ. Я рекомендую тебе читать ее documentaciГіn Ваш pГЎgina чиновник, так как пример, который я показываю тебе, что-то bГЎsico многих вещей, которые ты можешь делать.
В этом типе случаев годится делать одну двойной validaciГіn: стороны клиента и стороны сервера.
С HTML5 существует тип email
для элементов input
, с которыми ты бы это помещал:
<input type="email" id="email" class="boton" name="email" placeholder="Tu email">
Ты validarГЎ электронная почта стороны клиента.
ты Можешь использовать filter_var
, чтобы санкционировать электронную почту.
Ввиду того, что filter_var
возвращает санкционированные данные или FALSE
, ты можешь захватывать следовательно электронную почту asГ - прямо:
$email = filter_var( В этом типе случаев годится делать одну двойной validaciГіn: стороны клиента и стороны сервера.
Из стороны клиента
С HTML5 существует тип email
для элементов input
, с которыми ты бы это помещал:
[110] Ты validarГЎ электронная почта стороны клиента.
Из стороны сервера
ты Можешь использовать filter_var
, чтобы санкционировать электронную почту.
Ввиду того, что filter_var
возвращает санкционированные данные или FALSE
, ты можешь захватывать следовательно электронную почту asГ - прямо:
[111] И потом if
quedarГ - в, поскольку это у тебя есть оригинально в cГіdigo:
if ($email && $name && $message){
// ... código
} else {
// ... código
}
POST["email"], FILTER_VALIDATE_EMAIL);
И потом if
quedarГ - в, поскольку это у тебя есть оригинально в cГіdigo:
if ($email && $name && $message){
// ... código
} else {
// ... código
}
error al enviar mensaje, intente nuevamente
или этот Controla la informacion ingresada, el mensaje NO se ha enviado
?
– A. Cedano
18.03.2019, 16:23
var_dump($email);
и var_dump($name);
и var_dump($message);
, чтобы видеть в cuá l он (принадлежит) им у тебя есть проблема. И проверь, что if
quedó таким образом: if ($email && $name && $message){
– A. Cedano
18.03.2019, 16:32
QuizГЎs это смогло стоить тебе для того, чтобы сделать утверждения, в которых ты нуждаешься, и tambiГ©n, чтобы вводить в твоей базе данных:
HTML (contacto.html)
<form action="javascript:void(0);" method="post" id="form-contacto">
<input type="text" id="nombre" name="nombre" placeholder="Nombre" onkeypress="return alfabetico(event);">
<input type="email" id="email" name="email" placeholder="Mail">
<input type="submit" id="enviar" name="enviar" value="Enviar">
</form>
JS (validaciones.js)
$(document).ready(function() {
$("#enviar").click(function(e){
e.preventDefault();
$("#form-contacto").submit();
});
$("#form-contacto").validate({
rules: {
nombre: {
required: true
},
email: {
required: true,
emailExt: true
}
},
messages: {
nombre: "Ingrese Nombre",
email: {
required: "Ingrese Email",
email: "Ingrese un Email válido"
}
},
submitHandler: function (form) {
$('#enviar').attr("disabled", true);
enviarForm();
}
});
});
function enviarForm(){
var parametros = {
nombre: $('#nombre').val(),
email: $('#email').val()
}
$.ajax({
data: parametros,
url: 'procesar.php', /* Aqui mandas a tu archivo php para insertar los datos */
type: 'post',
async: false,
success: function (response) {
/* Puedes elegir entre mostrar un alert o llevarlo a una paginas estatica des respuesta*/
alert ("Tus datos se enviaron de forma exitosa!");
},
error : showError
});
}
function showError(XMLHttpRequest, textStatus, errorThrown) {
alert("Ha ocurrido un error procesando la información");
}
/* Validador alfabetico */
function alfabetico(e){
kc=e.keyCode?e.keyCode:e.which;
if(kc<32) return true;
kc=String.fromCharCode(kc);
if(/[^a-zA-ZüÜáéíóúÁÉÍÓÚñÑ ]/.test(kc)) return false;
}
/* Validador de Correo */
jQuery.validator.addMethod("emailExt", function(value, element, param) {
return value.match(/^[a-zA-Z0-9_\.%\+\-]+@[a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,}$/);
},'Ingrese un Email válido');
В твоем файле php только достаточен того, что ты взял данные и они ввел внутри твоей базы данных остальные (утверждения) dГ©jalo в файл JS. Я надеюсь, что он подает тебя!