Foros del Web » Programando para Internet » PHP »

Problemas con Formulario Contacto

Estas en el tema de Problemas con Formulario Contacto en el foro de PHP en Foros del Web. Buenas a Todos! Si alguien pudiera asesorarme sería eternamente agradecido... Tengo un formulario de contacto de mi web de html enlazado con PHP. Resulta que ...
  #1 (permalink)  
Antiguo 29/04/2011, 10:27
 
Fecha de Ingreso: abril-2011
Mensajes: 1
Antigüedad: 12 años, 11 meses
Puntos: 0
Busqueda Problemas con Formulario Contacto

Buenas a Todos!

Si alguien pudiera asesorarme sería eternamente agradecido...
Tengo un formulario de contacto de mi web de html enlazado con PHP. Resulta que el formulario si manda el correo a mi bandeja de entrada. Sin embargo no logro validarlo de manera que si los campos están vacios no mande ningún correo y aparezca un "letrero" pidiendo que llene los campos, y en caso de éxito, borre la info y aparezca una "ventana" o "Letrero" que diga que el mensaje fue enviado exitosamente y desaparezca en 3 o 4 segundos...

Si alguien pudiera ayudarme lo agradecería... El código de mi formulario es este:

<form action="enviar.php" method="post"" name="contacto" id ="contacto" >
<label><p>Nombre</p>
<p>Email</p><p>Mensaje</p></label> <input name="nombre" type="text" id="nombre" class="nameField" onBlur="MM_validateForm('nombre','','R');return document.MM_returnValue" >
<br>
<br><input name="email" class="emailField" type="text" onBlur="MM_validateForm('email','','NisEmail');ret urn document.MM_returnValue" >
<br>
<br>
<textarea cols="10" rows="5" class="commentField" name="opinion"></textarea>
<br>
<br>
<input type="submit" class="sendButton" value="Enviar">
</form>

El código en el PHP es el siguiente:

<?php
error_reporting(0);
$Nombre = $_POST['nombre'];
$Email= $_POST['email'];
$Empresa = $_POST['empresa'];

$header = 'From: ' . $mail . ", Comentarios ".$poblacion."\r\n";
$header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";

$mensaje = "Este mensaje fue enviado por: " . $Nombre . " \r\n";
$mensaje .= "Su e-mail es: " . $Email . " \r\n";
$mensaje .="Mensaje:".$_POST['opinion'] . " \r\n";
$mensaje .= "Enviado el " . date('d/m/Y', time());

$para = '[email protected]';
$asunto = 'Enviado desde la Web de CG';

mail($para, $asunto, utf8_decode($mensaje), $header);

if ($success){
print "<meta http-equiv=\"refresh\" content=\"0;URL=../enviado.html\">";
}

else{
print "<meta http-equiv=\"refresh\" content=\"0;URL=../error.php\">";
}

?>

Si quieren verlo Funcionando:
http://www.cortegrafico.com.mx/probando.html

Saludos! y espero no causarles molestia alguna...
P.D. No importa que me manden correos intentando ver que pasa, al contrario si logran ayudarme, mejor!
;)
  #2 (permalink)  
Antiguo 29/04/2011, 10:53
Avatar de ArkangelGammar  
Fecha de Ingreso: enero-2011
Ubicación: <?php $persona->ubicacion('ArkangelGammar'); ?>
Mensajes: 179
Antigüedad: 13 años, 2 meses
Puntos: 19
Respuesta: Problemas con Formulario Contacto

Te aconsejo que busques la funcion validate de jquery, es muy buena, valida varios campos y te permite personalizar los mensajes con un minimo de esfuerzo.

Espero haber sido de utilidad.


Saludos
__________________
"No entiendes algo al menos que seas capaz de explicarselo a tu abuela.
Cada dia sabemos mas....y entendemos menos...."

A. Einstein - Genio mas alla de la razon.
  #3 (permalink)  
Antiguo 29/04/2011, 11:21
 
Fecha de Ingreso: junio-2008
Ubicación: Capital Federal xD
Mensajes: 1.208
Antigüedad: 15 años, 9 meses
Puntos: 35
Respuesta: Problemas con Formulario Contacto

Si no deseas usar jquery y solo usar javascript:
La validación de los datos podrías hacerlo antes de enviar los datos a tu script php(en el lado del cliente), usando javascript, el metodo onsubmit debe llamar a una función que valide los campos que deseas y decidir si los envia al script o no.
Entonces los pasos serían:
- en el tag form definir el atributo onsubmit que llama a la función de validación,
- la función devuelve true solo si los campos son correctos.
devuelve false si faltan datos, y de paso muestras un mensaje de error.

Existen varias formas de validar datos, te dejo un par de links interesantes
http://www.desarrolloweb.com/articulos/1767.php
http://www.programacionweb.net/foros/mensaje/?num=21227

Para mostrar un cartel durante unos segundos, usa setTimeout donde en el ultimo parametro le especificas cuantos milisegundos debe esperar para disparar el evento, en tu caso ocultar un elemento.
Código Javascript:
Ver original
  1. setTimeout('(document.getElementById(\'ejemplo\').style.display = \'none\')', 1000);
Esta linea, pasados 1 segundo(1000 milisegundos) oculta un elemento con id igual a "ejemplo"

Dicho elemento debería tener el texto de un mensaje, también puedes usarlo en el script.php luego de enviar el email.
__________________
I am Doyle please insert code.

Última edición por doylelives; 29/04/2011 a las 11:27

Etiquetas: e-mail, html, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:47.