Foros del Web » Creando para Internet » HTML »

Formulario de contacto tira error

Estas en el tema de Formulario de contacto tira error en el foro de HTML en Foros del Web. Buenas a todos, soy nueva en el foro.... y quisiera hacer una consulta... hice un formulario que cuando se completa y le pongo enviar lo ...
  #1 (permalink)  
Antiguo 11/08/2010, 17:53
 
Fecha de Ingreso: diciembre-2006
Mensajes: 100
Antigüedad: 11 años
Puntos: 0
Formulario de contacto tira error

Buenas a todos, soy nueva en el foro.... y quisiera hacer una consulta...
hice un formulario que cuando se completa y le pongo enviar lo hace perfectamnete, pero lo raro qeu me hace es que cuando entro a la seccion de contacto, aunque no lelne el formulario me envia un mail vacio...me explico?
Porque sera? estare poniendo algo mal en el codigo?

Gracias
Flopyta
  #2 (permalink)  
Antiguo 12/08/2010, 07:27
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 10 años, 9 meses
Puntos: 67
Respuesta: Formulario de contacto tira error

Pues pon tu código, tampoco somos magos para saber así nomás.
  #3 (permalink)  
Antiguo 12/08/2010, 17:34
 
Fecha de Ingreso: diciembre-2006
Mensajes: 100
Antigüedad: 11 años
Puntos: 0
Respuesta: Formulario de contacto tira error

tienes razon te pongo el codigo haber si em pueden dar una mano...

<?

$nombre=$_GET['Apellido'];
$telefono=$_GET['Telefono'];
$empresa=$_GET['Empresa'];
$email=$_GET['mail'];
$consulta=$_GET['consulta'];


$para='[email protected]';


$titulo='Consulta desde sitio web';


$mensaje='Nombre: '.$nombre;
$mensaje.='\nTelefono: '.$telefono;
$mensaje.='\nEmpresa: '.$empresa;
$mensaje.='\nmail: '.$email;
$mensaje.='\nConsulta: '.$consulta;


$cabeceras = 'From: '. $email;

mail($para, $titulo, $mensaje, $cabeceras);


header("Location: gracias.html");
?>

Este es el codigo que tiene mi formulario... Y vuelvo a comentar el problema, con solo entrar al botond e contacto me tira un mail como que envie el formulario vacio...
Y si lo completo lo manda perfectamente.

Gracias
  #4 (permalink)  
Antiguo 12/08/2010, 18:24
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 10 años, 5 meses
Puntos: 1567
Respuesta: Formulario de contacto tira error

flopyta

tu script simplemente recoge los valores y los envía, en ninguna parte hay alguna condición o filtro que indique que si uno o mas campos no tienen datos, detenga el proceso de envío de email.
en definitiva no estás haciendo lo que se denomina habitualmente "validación del formulario"



Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #5 (permalink)  
Antiguo 12/08/2010, 20:02
 
Fecha de Ingreso: diciembre-2006
Mensajes: 100
Antigüedad: 11 años
Puntos: 0
Respuesta: Formulario de contacto tira error

y como hago para hacer la validacion del formualrio, para que se envie solamente cuando se llene? Me explico? y no cuando se toca el boton de contacto?
gracias
saludos
  #6 (permalink)  
Antiguo 12/08/2010, 21:13
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 10 años, 5 meses
Puntos: 1567
Respuesta: Formulario de contacto tira error

las validaciones pueden ser muy sencillas o más complejas según que elementos quieras validar, se puede hacer con javascript en el mismo navegador del cliente (supuestamente más rápido), o desde el lado sel servidor, con el mismo php, en tu caso.

voy a ponerte dos ejemplos, uno, para prevenir que el campo este vacio, y otro para chequear que la dirección de email sea una dirección válida.



<?php
$nombre=$_GET['Apellido'];
$telefono=$_GET['Telefono'];
$empresa=$_GET['Empresa'];
$email=$_GET['mail'];
$consulta=$_GET['consulta'];

// la siguiente es una expresion regular que equivale a un email valido
$control_mail="^[a-z0-9\._-][email protected]+[a-z0-9\._-]+\.+[a-z]{2,4}$";
// hacemos una comparación entre la expresion regular y el contenido de $email
if(!eregi($control_mail,$email)){
// si no hay coincidencia
// fijate bien en el punto en $mensaje_error. eso significa que esta variable
// la mantenemos abierta para recibir más posibles mensajes de error
$mensaje_error.= "<p>La <b>sintáxis de email</b> no es válida</p>\n";
}

// ahora el nombre
// quitamos probable html de los campos
$nombre = strip_tags("$str");
// removemos epacios sobrantes al inicio y final de las lineas
// imagina que solo presionaron la barra espaciadora
$nombre = trim("$nombre");

// y ahora usamos empty();
// una funcion que reconoce si una variable es una cadena vacia
if(empty($nombre)){
$mensaje_error.= "<p>Nombre es un campo obligatorio</p>\n";
}

// si no hubo errores, $mensaje_error="";
// basandonos en esto

if($mensaje_error == ""){ // procesamos

$para='[email protected]';
$titulo='Consulta desde sitio web';

$mensaje='Nombre: '.$nombre;
$mensaje.='\nTelefono: '.$telefono;
$mensaje.='\nEmpresa: '.$empresa;
$mensaje.='\nmail: '.$email;
$mensaje.='\nConsulta: '.$consulta;


$cabeceras = 'From: '. $email;

mail($para, $titulo, $mensaje, $cabeceras);


header("Location: gracias.html");

}else{
// imprimimos el error y salimos
echo = "$mensaje_error"; // aqui ya no lleva el punto
exit();
}
?>

bueno, es algo rudimentario, se puede optimizar, pero es para que lo aprendas, ahora debes buscar como implementarlo en el resto de los campos que lo requieran.
Tres consejos, usa <?php ?> en tus scripts y no la forma abreviada <? ?> y en tu form, usa $_POST y no $_GET. No es necesario la redirección a la pagina de agradecimiento, puedes sacar el mensaje aqui mismo al igual que el de error

Para hacerlo con javascript te dejo un par de enlaces

http://www.webtaller.com/construccio...javascript.php

http://www.elcodigo.com/tutoriales/j...vanzado13.html

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #7 (permalink)  
Antiguo 15/08/2010, 22:25
 
Fecha de Ingreso: diciembre-2006
Mensajes: 100
Antigüedad: 11 años
Puntos: 0
Respuesta: Formulario de contacto tira error

Gracias x contestar , pero no se puede hacer desde dremweber la validacion? y no script?

Etiquetas: contacto, tira, 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 19:06.