Foros del Web » Programando para Internet » PHP »

Formulario de contacto

Estas en el tema de Formulario de contacto en el foro de PHP en Foros del Web. Hola a todos tengo unos problemillas con mi formulario de contacto, os pego el codigo y me ayudais si podeis Cita: <form id="form1" name="form1" method="post" ...
  #1 (permalink)  
Antiguo 14/04/2013, 13:15
 
Fecha de Ingreso: marzo-2013
Mensajes: 36
Antigüedad: 11 años, 1 mes
Puntos: 0
Formulario de contacto

Hola a todos tengo unos problemillas con mi formulario de contacto, os pego el codigo y me ayudais si podeis
Cita:
<form id="form1" name="form1" method="post" action="../enviar.php">
<div id="datos_personales">
<h2>Datos personales:</h2>
<label for="nombre">Nombre:</label> <br><input type="text" size=30 id="Nombre" name="Nombre" title="Se necesita un nombre" required /><br>
<label for="Apellidos">Apellidos:</label> <br><input type="text" size=30 id="Apellidos" name="Apellidos" title="Se necesita almenos un apellido" required /><br>

<label for="ciudad">Ciudad:</label> <br><input type="text" size=30 id="Ciudad" name="Ciudad" title="Se necesita una ciudad" required /><br>
<label for="Provincia">Provincia:</label> <br><input type="text" size=30 id="Provincia" name="Provincia" title="Se necesita una provincia" required /><br>

<label for="Email">Email:</label><br> <input type="Email" size=30 id="Email" name="Email" title="Se necesita un email valido" required /><br>
<label for="Telefono">Teléfono:</label> <br><input type="text" size=30 id="Telefono" name="Telefono" title="Se necesita un teléfono" required /><br><br>
<input type="submit" name="enviar" id="enviar" value="Enviar">
<input type="reset" name="reset" id="reset" value="Borrar">
</div>
<div id="datos_mensaje">
<h2>Datos de Mensaje:</h2>
<label for="Servicio">Servicio:</label> <br><input type="text" title="Se necesita el servicio del que pidas informacion" placeholder="Servicio del que realices la consulta." size=54 id="Servicio" name="Servicio" required /><br>
<label for="Destinatario">Destinatario:</label><br>
<select name="Destinatario" id="Destinatario">
<option value="Particular">Particular</option>
<option value="Empresa instaladora">Empresa instaladora </option>
<option value="Constructora">Constructora</option>
<option value="Administrador Fincas">Administrador Fincas </option>
</select><br>
<label for="Mensaje">Mensaje:</label> <br>
<textarea name="texto" id="texto" cols="40" rows="12" ></textarea>

</div>
</form>
Este es el html de contacto, creo que aqui no hay problema

Cita:
<?php
$Nombre = $_POST['Nombre'];
$Apellidos = $_POST['Apellidos'];
$Ciudad = $_POST['Ciudad'];
$Provincia = $_POST['Provincia'];
$Email = $_POST['Email'];
$Telefono = $_POST['Telefono'];
$Servicio = $_POST['Servicio'];
$Destinatario = $_POST['Destinatario'];
$texto = $_POST['texto'];

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

$mensaje = "Nombre: " .$Nombre. " \r\n";
$mensaje = "Apellidos: " .$Apellidos. " \r\n";
$mensaje = "Ciudad: " .$Ciudad. " \r\n";
$mensaje = "Provincia: " .$Provincia. " \r\n";
$mensaje = "Telefono: " .$Telefono. " \r\n";
$mensaje = "Servicio: " .$Servicio. " \r\n";
$mensaje = "Destinatario: " .$Destinatario. " \r\n";
$mensaje = "Mensaje: " .$texto. " \r\n";
$mensaje = "Enviado el " . date("d/m/y \a \l\a\s H:i:s ");

$para = '[email protected]';
$asunto = 'Contacto desde Tu Web';

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

echo "Su mensaje a sido enviado correctamente" ;

?>
y aqui esta el de php, me ocurre lo siguiente, cuando le doy al boton de enviar me envia unicamente la ultima variable de $mensaje es decir "Enviado el " . date("d/m/y \a \l\a\s H:i:s ");, sin embargo el resto de variables de $mensaje no me sale nada de nada, y otra cosilla mas, me gustaria que al pulsar el boton enviar me saliera el mensaje de echo "Su mensaje a sido enviado correctamente" ; y posteriormente me redireccione a la web que quiera, como seria???

Muchas gracias!!
  #2 (permalink)  
Antiguo 14/04/2013, 13:25
Avatar de Karmac  
Fecha de Ingreso: agosto-2011
Ubicación: Bilbao
Mensajes: 196
Antigüedad: 12 años, 8 meses
Puntos: 34
Respuesta: Formulario de contacto

Código PHP:
Ver original
  1. $mensaje = "Nombre: " .$Nombre. " \r\n";
  2. $mensaje = "Apellidos: " .$Apellidos. " \r\n";
  3. $mensaje = "Ciudad: " .$Ciudad. " \r\n";
  4. $mensaje = "Provincia: " .$Provincia. " \r\n";
  5. $mensaje = "Telefono: " .$Telefono. " \r\n";
  6. $mensaje = "Servicio: " .$Servicio. " \r\n";
  7. $mensaje = "Destinatario: " .$Destinatario. " \r\n";
  8. $mensaje = "Mensaje: " .$texto. " \r\n";
  9. $mensaje = "Enviado el " . date("d/m/y \a \l\a\s H:i:s ");

Estas sobrescribiendo la variable, te falta .= en vez de = tal como lo has hecho con $header.

Saludos.

Última edición por Karmac; 14/04/2013 a las 13:25 Razón: Ortografía.
  #3 (permalink)  
Antiguo 14/04/2013, 13:42
 
Fecha de Ingreso: marzo-2013
Mensajes: 36
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Formulario de contacto

Muchisimas gracias era eso! no sabrias tambien como lograr que una vez pulsado el boton de enviar y salga el echo "mensaje enviado" me redireccione a la pagina que yo quiera?
  #4 (permalink)  
Antiguo 14/04/2013, 13:46
Avatar de Karmac  
Fecha de Ingreso: agosto-2011
Ubicación: Bilbao
Mensajes: 196
Antigüedad: 12 años, 8 meses
Puntos: 34
Respuesta: Formulario de contacto

Imprime la siguiente meta tag en tu cabecera para que te lleve a la nueva página, debes especificar el tiempo que tardará y la nueva URL:

Código HTML:
Ver original
  1. <meta http-equiv="refresh" content="0;url=http://google.es/" />

Yo pondría también en algún sitio de la página el típico mensaje de "Haz click aquí si la página no te redirige automáticamente." por si las moscas.

Saludos.
  #5 (permalink)  
Antiguo 14/04/2013, 14:18
Avatar de jariza  
Fecha de Ingreso: agosto-2003
Ubicación: Málaga
Mensajes: 1.449
Antigüedad: 20 años, 8 meses
Puntos: 10
Respuesta: Formulario de contacto

También podrías probar con:
Código PHP:
header('Location: http://www.example.com/'); 
http://es1.php.net/manual/en/function.header.php

Un saludo :)
  #6 (permalink)  
Antiguo 14/04/2013, 14:38
Avatar de Karmac  
Fecha de Ingreso: agosto-2011
Ubicación: Bilbao
Mensajes: 196
Antigüedad: 12 años, 8 meses
Puntos: 34
Respuesta: Formulario de contacto

Cita:
Iniciado por jariza Ver Mensaje
También podrías probar con:
Código PHP:
header('Location: http://www.example.com/'); 
http://es1.php.net/manual/en/function.header.php

Un saludo :)
Cierto, pero no podrías mostrar el mensaje porque se realizaría de inmediato, ¿me equivoco?
Saludos.
  #7 (permalink)  
Antiguo 14/04/2013, 15:12
Avatar de jariza  
Fecha de Ingreso: agosto-2003
Ubicación: Málaga
Mensajes: 1.449
Antigüedad: 20 años, 8 meses
Puntos: 10
Respuesta: Formulario de contacto

Cita:
Iniciado por Karmac Ver Mensaje
Cierto, pero no podrías mostrar el mensaje porque se realizaría de inmediato, ¿me equivoco?
Saludos.
Correcto. En ese caso lo que se hace es mostrar el mensaje en la página destino de la redirección. :)

Etiquetas: contacto, formulario, html, select, variables
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 10:59.