Comunidad de diseño web y desarrollo en internet online

Ayuda con formulario en php

Citar            
MensajeEscrito el 15 Mar 2010 10:58 pm
Ayuda necesito validar este formulario en php y no encuentro la vuelta.
Necesito que al enviar el formulario si es error los campos queden en rojo y mostrar ejemplo que no se inserto el nombre.

Código :

<?php 
$para = '[email protected]';

$asunto = $_POST["nombre"]. " " .$_POST["apellido"]; 
$mailheader = "From: ".$_POST["email"]."\r\n"; 
$mailheader .= "Reply-To: ".$_POST["email"]."\r\n"; 
$mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n"; 
$MESSAGE_BODY .= "Nombre: ".$_POST["nombre"]."<br>"; 
$MESSAGE_BODY .= "Apellido: ".$_POST["apellido"]."<br>";
$MESSAGE_BODY .= "Email: ".$_POST["email"]."<br>"; 
$MESSAGE_BODY .= "Telefono: ".$_POST["telefono"]."<br>"; 
$MESSAGE_BODY .= "Motivo de contacto: ".$_POST["motivo"]."<br>";
$MESSAGE_BODY .= "Localidad: ".$_POST["localidad"]."<br>"; 
$MESSAGE_BODY .= "Mensaje: ".nl2br($_POST["mensaje"])."<br>"; 
mail($para, $asunto, $MESSAGE_BODY, $mailheader) or die ("Error al enviar el Formulario !"); 
echo "Gracias por rellenar el formulario. <br>Se ha enviado correctamente."; 
?>

Por tips

4 de clabLevel



 

opera
Citar            
MensajeEscrito el 15 Mar 2010 11:18 pm
necesitas hacer if para validar si tienen valor o por ejemplo en el correo usar expresiones regulares
por ejemplo

Código :

if (!$_POST["nombre"])
{
echo "ingresa tu nombre";
}

Por tribak

Claber

2448 de clabLevel

6 tutoriales

Genero:Masculino   Héroes

Fotógrafo o algo

firefox
Citar            
MensajeEscrito el 16 Mar 2010 12:38 am
Entonces mi codigo quedaria asi?

<?php
if (!$_POST["nombre"])
{
echo "ingresa tu nombre";
}

else;

$para = '[email protected]';

$asunto = $_POST["nombre"]. " " .$_POST["apellido"];
$mailheader = "From: ".$_POST["email"]."\r\n";
$mailheader .= "Reply-To: ".$_POST["email"]."\r\n";
$mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n";
$MESSAGE_BODY .= "Nombre: ".$_POST["nombre"]."<br>";
$MESSAGE_BODY .= "Apellido: ".$_POST["apellido"]."<br>";
$MESSAGE_BODY .= "Email: ".$_POST["email"]."<br>";
$MESSAGE_BODY .= "Telefono: ".$_POST["telefono"]."<br>";
$MESSAGE_BODY .= "Motivo de contacto: ".$_POST["motivo"]."<br>";
$MESSAGE_BODY .= "Localidad: ".$_POST["localidad"]."<br>";
$MESSAGE_BODY .= "Mensaje: ".nl2br($_POST["mensaje"])."<br>";
mail($para, $asunto, $MESSAGE_BODY, $mailheader) or die ("Error al enviar el Formulario !");
echo "Gracias por rellenar el formulario. <br>Se ha enviado correctamente.";
?>

Por tips

4 de clabLevel



 

firefox
Citar            
MensajeEscrito el 16 Mar 2010 01:35 am
no, el ejemplo de nombre es solo para eso, y el echo deberia ser cambiado por una redireccion al formulario
ademas de eso tambien debes validar el apellido, correo, telefono, motivo y mensaje ;)

ademas debes validar el que se haya oprimido el boton de enviar, sino podrian enviarte spam (mas posiblemente)

para validar los primeros seria algo como esto si la validacion no necesita ser precisa

Código :

if (!$_POST["nombre"] || !$_POST["apellido"] || !$_POST["correo"] || !$_POST["telefono"] || !$_POST["motivo"] ||!$_POST["mensaje"]){
//procede
}
else{
//error
}


ma ten en mente que en correo podrian insetar "este.es.mi.correo" y lo validaria como si de un correo real se tratara, lo mismo con telefono, podrian escribir letras cuando no hay telefonos con letras

para el correo podrias usar una funcion en php como la siguiente:

Código :

<?php
  function validarmail($correo) {
    if (eregi("^[_\.0-9a-z-]+@[0-9a-z\._\-]+\.[a-z]{2,4}$", $correo)) return true;
    else return false;
  }
?>


y en la validacion se implementaria asi:

Código :

if(!validarmail($_POST['email'])) { 
//error
}

Por tribak

Claber

2448 de clabLevel

6 tutoriales

Genero:Masculino   Héroes

Fotógrafo o algo

firefox
Citar            
MensajeEscrito el 16 Mar 2010 02:03 am
Quizás esto te ayude: LINK acá hablo un poquito del tema de la validación de formularios, y un poco sobre el porque de cada elemento de las etiquetas. Espero e sirva ;)

Por TonchitoZ

6 de clabLevel



 

firefox
Citar            
MensajeEscrito el 16 Mar 2010 02:07 am
Muchas gracias intentare ver si puedo.

Por tips

4 de clabLevel



 

firefox
Citar            
MensajeEscrito el 16 Mar 2010 02:21 am
Disculpen las molestias pero no logro que me funcione el codigo validandome me podrian mostrar como quedaria desarrollado?
Seria algo asi? Asi no me anda.
<?php
if (!$_POST["nombre"] || !$_POST["apellido"] || !$_POST["correo"] || !$_POST["telefono"] || !$_POST["motivo"] ||!$_POST["mensaje"]){
//procede
}
else{
//error
}
$para = '[email protected]';

$asunto = $_POST["nombre"]. " " .$_POST["apellido"];
$mailheader = "From: ".$_POST["email"]."\r\n";
$mailheader .= "Reply-To: ".$_POST["email"]."\r\n";
$mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n";
$MESSAGE_BODY .= "Nombre: ".$_POST["nombre"]."<br>";
$MESSAGE_BODY .= "Apellido: ".$_POST["apellido"]."<br>";
$MESSAGE_BODY .= "Email: ".$_POST["email"]."<br>";
$MESSAGE_BODY .= "Telefono: ".$_POST["telefono"]."<br>";
$MESSAGE_BODY .= "Motivo de contacto: ".$_POST["motivo"]."<br>";
$MESSAGE_BODY .= "Localidad: ".$_POST["localidad"]."<br>";
$MESSAGE_BODY .= "Mensaje: ".nl2br($_POST["mensaje"])."<br>";
mail($para, $asunto, $MESSAGE_BODY, $mailheader) or die ("Error al enviar el Formulario !");
echo "Gracias por rellenar el formulario. <br>Se ha enviado correctamente.";
?>

Por tips

4 de clabLevel



 

firefox
Citar            
MensajeEscrito el 16 Mar 2010 02:36 am
no estas haciendo absolutamente nada, tanto si se cumple como no la validacion estas solo haciendo comentario (a.k.a. //)
en procede deberia haber codigo para enviar el correo y en error codigo por si algo falla

Por tribak

Claber

2448 de clabLevel

6 tutoriales

Genero:Masculino   Héroes

Fotógrafo o algo

firefox
Citar            
MensajeEscrito el 16 Mar 2010 02:42 am
ahh perfecto gracias

Por tips

4 de clabLevel



 

firefox
Citar            
MensajeEscrito el 16 Mar 2010 07:03 pm
Alguien podria pasarme el codigo de como me quedaria la validacion completa?
Gracias

Por tips

4 de clabLevel



 

firefox
Citar            
MensajeEscrito el 17 Mar 2010 02:23 am
Otro caso de copipastitis crónica...

Por DriverOp

Claber

2510 de clabLevel



 

opera

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.