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. Buen Día, soy nuevo el foro, tengo un formulario de contacto i cuando se aprieta el boton de enviar, me manda a mi pàgina que ...
  #1 (permalink)  
Antiguo 14/07/2011, 05:10
 
Fecha de Ingreso: julio-2011
Mensajes: 1
Antigüedad: 13 años, 5 meses
Puntos: 0
Mensaje formulario de contacto

Buen Día, soy nuevo el foro, tengo un formulario de contacto i cuando se aprieta el boton de enviar, me manda a mi pàgina que deberia aparecer cuando un campo se completo de manera incorrecta.
Subo el código html + el php para vr si alguien me puede ayudar!

Formulario:
<form action="enviar php.php" method="post" id="contacto">

<label for="input_nombres">
<div align="left"><span class="Estilo13">Nombre</span></div>
</label>
<div align="left"><span class="Estilo13">
<input id="input_nombres" type="text" name="nombre" value="" />
<br />
<br />

</span></div>
<span class="Estilo13"><label for="input_apellido">
<div align="left">Apellido</div>
</label>
<div align="left">
<input id="input_apellido" type="text" name="Apellido" value="" />
<br />
<br />
</div>
<label for="input_email">
<div align="left">Email</div>
</label>
<div align="left">
<input id="input_email" type="text" name="email" value="" />
<br />
<br />
</div>
<label for="input_teléfono">
<div align="left">Teléfono</div>
</label>
<div align="left">
<input id="input_Teléfono" type="text" name="Teléfono" value="" />
<br />
<br />
</div>
<label for="input_Celular">
<div align="left">Celular</div>
</label>
<div align="left">
<input id="input_Celular" type="text" name="Celular" value="" />
<br />
<br />
</div>
<label for="textarea_mensaje">
<div align="left">Mensaje</div>
</label>
</span>
<div align="left"><span class="Estilo11"></span></div>
<span class="Estilo11"><label for="textarea_mensaje"></label>
</span>
<div align="left"><span class="Estilo9"></span></div>
<span class="Estilo9"><label for="textarea_mensaje"></label>
</span>
<div align="left"><span class="Estilo7"></span></div>
<span class="Estilo7"><label for="textarea_mensaje"></label>
</span>
<label for="textarea_mensaje"></label>
<div align="left"><br />
<textarea id="textarea_mensaje" name="mensaje" rows="5" cols="50"></textarea>
<br />
<br />

<input type="submit" name="submit" value="Enviar" />
</div>
</form>


ahora el PHP:

<?

// definimos las variables o marcamos el error
if ( !empty($_POST['nombre']) ) $nombre = $_POST['nombre']; else $error = true;
if ( !empty($_POST['apellido']) ) $apellido = $_POST['apellido']; else $error = true;
if ( !empty($_POST['email']) ) $email = $_POST['email']; else $error = true;
if ( !empty($_POST['Teléfono']) ) $Teléfono = $_POST['Teléfono']; else $error = true;
if ( !empty($_POST['Celular']) ) $Celular = $_POST['Celular']; else $error = true;

// verificamos que no exista un error
if ( !empty($error) ) {
header( 'Location: contacto_error.php' );
die;
}

// definimos el cuerpo del email
$cuerpo = "
De: $nombre \n\r
Apellido: $apellido \n\r
Email: $email \n\r
Teléfono: $Teléfono \n\r
Celular: $Celular \n\r
Mensaje: \n\r
$mensaje
";

// enviamos el email
if ( mail( '[email protected]','Recibiste un mensaje a través del formulario de contacto de tu sitio',$cuerpo ) ) {
header( 'Location: contacto_exitoso.php' );
die;
} else {
header( 'Location: contacto_error.php' );
die;
}
?>
  #2 (permalink)  
Antiguo 14/07/2011, 05:15
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 14 años, 3 meses
Puntos: 331
Respuesta: formulario de contacto

hay dos posibilidades, o te está direccionando aquí:

Código PHP:
Ver original
  1. if ( !empty($error) ) {
  2.  header( 'Location: contacto_error.php' );
  3.  die;
  4.  }

o aquí:

Código PHP:
Ver original
  1. // enviamos el email
  2.  if ( mail( '[email protected]','Recibiste un mensaje a través del formulario de contacto de tu sitio',$cuerpo ) ) {
  3.  header( 'Location: contacto_exitoso.php' );
  4.  die;
  5.  } else {
  6.  header( 'Location: contacto_error.php' );
  7.  die;
  8.  }

más seguro que sea la segunda opción, mail() no funciona o no está correctamente configurado.
Deberías utilizar distintas páginas de error para distintos errores.

Salu2!
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 14/07/2011, 05:40
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 9 meses
Puntos: 253
Respuesta: formulario de contacto

Buenas, $error es una variable boolean, ya que haces $error = true;

Luego, cuando vas a comprobar error, pones esto:
if (!empty($error))

No es muy lógico, ya que será true, por qué no pones if ($error) sin más? No creo que sea por eso, pero igual no está del todo bien.

Un saludo.
  #4 (permalink)  
Antiguo 14/07/2011, 06:36
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 10 meses
Puntos: 288
Respuesta: formulario de contacto

esto para mi esta malllll:
Código PHP:
Ver original
  1. <?
  2. /*
  3. si nombre es vacio y no se le asigna nada no sireve de nada este if
  4. */
  5. // definimos las variables o marcamos el error
  6. if ( !empty($_POST['nombre']) )
  7.   $nombre = $_POST['nombre'];
  8. else
  9.   $error = true;
  10.  
  11. // como dijo el amigo
  12. if ( $error ) {
  13. header( 'Location: contacto_error.php' );
  14. }
  15. /*
  16. si nombre llega vacio esto deberia dar un error de variable no definida, malll
  17. */
  18. // definimos el cuerpo del email
  19. $cuerpo = "De: $nombre ......";
  20. ?>

Etiquetas: contacto, formulariocontacto, post, 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:43.