Foros del Web » Programando para Internet » PHP »

problema con envío de formulario.

Estas en el tema de problema con envío de formulario. en el foro de PHP en Foros del Web. Buenas a todos.. aunque hace más de 1 año que estoy por aquí, nuna hasta hoy había tenido la necesidad de preguntar en el foro.. ...
  #1 (permalink)  
Antiguo 14/02/2011, 06:28
 
Fecha de Ingreso: abril-2009
Mensajes: 4
Antigüedad: 15 años
Puntos: 0
problema con envío de formulario.

Buenas a todos.. aunque hace más de 1 año que estoy por aquí, nuna hasta hoy había tenido la necesidad de preguntar en el foro.. hoy ha llegado el día.. así que allá voy...

Tengo una página con un formulario, y sólo por navegar por dicha página el formulario se activa y me envía una consulta al mail como si se hubiera generado una consulta en el formulario.. no consigo sabe que ocurre... a ver si alguien me echa un cable...

el código php es el siguiente:

<?php


$mail='[email protected]';


$nombre = $_POST['nombre'];
$direccion = $_POST['direccion'];
$telefono = $_POST['telefono'];
$email = $_POST['email'];
$persona = $_POST['persona'];
$poblacion = $_POST['poblacion'];
$coment = $_POST['coment'];
$thank="contacto.html";

$message = "
nombre:".$nombre."
direccion:".$direccion."
telefono:".$telefono."
email:".$email."
persona:".$persona."
poblacion:".$poblacion."
coment:".$coment."";



if (mail($mail,"consulta",$message))
{
?>
<script type="text/javascript">
window.location="<?php echo $thank; ?>";
</script>
<?php
}
?>

y el html del formulario:
<form method="POST" action="contacto.php" name="formulario">
<div style="float: right; padding-top: 0px ! important;">
Persona de contacto: <br />
<input type=text name="persona">
<br>
Población:<br />
<input type=text name="poblacion">
Email:<br />
<input type=text name="email">

<br />

</div>

Empresa: <br />
<input type=text name="nombre">
<br>
Dirección:<br />
<input type=text name="direccion">
<br>
Teléfono:<br />
<input type=text name="telefono">
<br />
Comentarios: <br />
<textarea name="coment" cols=32 rows=6></textarea>
<br>



<input type="hidden" value="enviado" name="accion"/>


<div style="text-align: left; padding-top: 10px; padding-left: 30px; float:left">
<button type="submit" class="submit"></button>

</div>
<div style="text-align: left; padding-top: 10px; padding-left: 30px; float:left">
<button type="reset" class="reset"></button>
</div>



</form>


Gracias a todos
  #2 (permalink)  
Antiguo 14/02/2011, 06:51
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 9 meses
Puntos: 8
Respuesta: problema con envío de formulario.

Hola,

te recomendaria que pongas en script en otro archivo ya que, aunque logres solucionar el problema, las personas que no tengan activado el javascript pueden presionar F5 y el formulario se enviará muchas veces.

Suponiendo que creaste un archivo enviar.php. Deberias tenerlo de la siguiente manera:

$mail='[email protected]';


Código PHP:
Ver original
  1. $nombre = $_POST['nombre'];
  2. $direccion = $_POST['direccion'];
  3. $telefono = $_POST['telefono'];
  4. $email = $_POST['email'];
  5. $persona = $_POST['persona'];
  6. $poblacion = $_POST['poblacion'];
  7. $coment = $_POST['coment'];
  8. $thank="contacto.html";
  9.  
  10. $message = "
  11. nombre:".$nombre."
  12. direccion:".$direccion."
  13. telefono:".$telefono."
  14. email:".$email."
  15. persona:".$persona."
  16. poblacion:".$poblacion."
  17. coment:".$coment."";
  18.  
  19. if(isset($submit)) {
  20.  
  21. mail($mail,"consulta",$message);
  22.  
  23. header('location: archivo_gracias.html');
  24. }

y el formulario tendría las siguientes modificaciones:

Código HTML:
Ver original
  1. <form method="POST" action="enviar.php" name="formulario">
  2. .......
  3. <button type="submit" class="submit" name="submit"></button>

Luego, si deseas hacerlo más seguro puedes agregarle más condiciones. Ej:

Código PHP:
Ver original
  1. if(isset($submit) and $nombre != '' and ..... and is_numeric($telefono) ....) {

Espero haberte ayudado.
  #3 (permalink)  
Antiguo 14/02/2011, 09:13
 
Fecha de Ingreso: abril-2009
Mensajes: 4
Antigüedad: 15 años
Puntos: 0
Respuesta: problema con envío de formulario.

Gracias kenproxd, problema resuelto, he hecho las modificaciones y ya funciona correctamente
Un saludo y hasta la próxima

Etiquetas: 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 07:36.