Foros del Web » Programando para Internet » PHP »

Formulario que llegue a correo

Estas en el tema de Formulario que llegue a correo en el foro de PHP en Foros del Web. Hola, he realizado un formulario en PHP para que me llegue al correo particular pero sale todo bien , sale el archivo de correo recibido ...
  #1 (permalink)  
Antiguo 22/07/2010, 10:30
El_Astur
Invitado
 
Mensajes: n/a
Puntos:
Formulario que llegue a correo

Hola, he realizado un formulario en PHP para que me llegue al correo particular pero sale todo bien , sale el archivo de correo recibido y todo, pero a mi correo no llegan los datos. Alguien me puede ayudar donde está el problema? Este es el código:

Éste es el archivo formprueba.html:

<form id="formulario" name="formulario" method="post" action="enviar.php">
<fieldset>
<legend>Curso CONDUCCI&ON</legend>

<p><label for="nombre">Nombre</label>
<input type="text" name="nombre" id="nombre" /></p>

<p><label for="apellidos">Apellidos</label>
<input type="text" name="apellidos" id="apellidos" /></p>

<p><label for="localidad">Localidad</label>
<input type="text" name="localidad" id="localidad" /></p>

<p><label for="telefono">Tel&eacute;fono</label>
<input type="text" name="telefono" id="telefono" /></p>

<p><label for="correo">eMail</label>
<input type="text" name="correo" id="correo" /></p>

<p><label for="mensaje">Comentarios</label>
<textarea name="mensaje" id="mensaje" cols="20" rows="5"></textarea></p>

<p><input type="submit" name="enviar" id="enviar" value="Enviar" /></p>
</fieldset>
</form>


Luego está el archivo enviar.php cuyo código es éste:

<?php
$mail='[email protected]';

$nombre=$_POST['nombre'];
$apellidos=$_POST['apellidos'];
$localidad=$_POST['localidad'];
$telefono=$_POST['telefono'];
$correo=$_POST['correo'];
$mensaje=$_POST['mensaje'];

$thank="correorecibido.html";

$message="
nombre:".$nombre."
apellidos:".$apellidos."
localidad:".$localidad."
telefono:".$telefono."
correo:".$correo."
mensaje:".$mensaje."";

if(mail($mail,"Curso conduccion",$message))
Header("Location:$thank");
?>
  #2 (permalink)  
Antiguo 22/07/2010, 10:46
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 14 años, 2 meses
Puntos: 55
Respuesta: Formulario que llegue a correo

desde donde estas enviando el mail ?
  #3 (permalink)  
Antiguo 22/07/2010, 11:16
Avatar de gengeru  
Fecha de Ingreso: agosto-2006
Mensajes: 9
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: Formulario que llegue a correo

Me pasa exactamente lo mismo... Por cierto, intenta evitar el uso de direcciones y datos personales. Si consigo algo, lo posteo. Suerte!
  #4 (permalink)  
Antiguo 22/07/2010, 17:41
 
Fecha de Ingreso: octubre-2009
Mensajes: 232
Antigüedad: 14 años, 6 meses
Puntos: 3
Respuesta: Formulario que llegue a correo

yo lo hago asi:
1. hago miformulario.php con estos datos por ejemplo: (nombre-mail-mensaje)atl como lo hiciste en el anterior
2.hago el enviar.php asi:

<?php

$nombre=$_POST['nombre'];
$emai=$_POST['email'];
$mensaje=$_POST['mensaje'];

//al mail que enviaras el contenido de miformmulario.php
$recipiente = "[email protected]";


$msg = "El Sr/Srta $nombre, envia el formulario con los siguientes datos:\n\n\n

nombre=$nombre
Email=$email
Mensaje:

$mensaje\n\n";


if (empty($nombre)){
echo "<p align=center><font face=tahoma size=2><b><font color=#FF0000>Error:</font> No has
ingresado tu Nombre.</b></font></p>";
}
if(empty($email)){
echo "<p align=center><font face=tahoma size=2><b><font color=#FF0000>Error:</font> No has
ingresado tu E-mail.</b></font></p>";
}
if(empty($mensaje)){
echo "<p align=center><font face=tahoma size=2><b><font color=#FF0000>Error:</font> No has
ingresado el Mensaje.</b></font></p>";
}else{


$mensaje = ereg_replace("\r\n","<br>", $mensaje);

$nombre = htmlentities($nombre);
$email = htmlentities($email);
$mensaje = htmlentities($mensaje);


mail("$recipiente", "$msg", "FROM: $email");


echo"<font face=tahoma size=2>
<p align=center>Gracias <b>$nombre</b>.
<p align=center>Responderemos tu mensaje en un plazo de 24 horas.<br><br>
<br>
<br>
<br>
<br>
</p>
<p align=center><br>
<a href=$sw>Regresar al Home</a>.</p>";
}
?>

eso es todo.

Última edición por quiero_aprender; 22/07/2010 a las 17:57
  #5 (permalink)  
Antiguo 23/07/2010, 09:33
Avatar de gengeru  
Fecha de Ingreso: agosto-2006
Mensajes: 9
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: Formulario que llegue a correo

Cita:
Iniciado por quiero_aprender Ver Mensaje
yo lo hago asi:
1. hago miformulario.php con estos datos por ejemplo: (nombre-mail-mensaje)atl como lo hiciste en el anterior
2.hago el enviar.php asi:

<?php
........
?>

eso es todo.
Sí, tu estructura también está bien (bueno, te has comido alguna letrilla como en $emai :P); el problema es que la "super" POST no recupera los datos del formulario (le he pasado el print_r) de modo que nos devuelve un valor vacío y, en tu caso, nos saltarían los errores que has definido. No logro encontrar el problemá así que se hace difícil buscar la solución (he verificado memoria, globals y demás en php y lo tengo todo OK...). Gracias de todos modos, si alguien tiene más ocurrencias, bienvenidas sean!

Última edición por gengeru; 23/07/2010 a las 09:46
  #6 (permalink)  
Antiguo 23/07/2010, 09:41
 
Fecha de Ingreso: marzo-2008
Mensajes: 99
Antigüedad: 16 años
Puntos: 0
Respuesta: Formulario que llegue a correo

hace un

var_dump($_POST);

Con eso vas a poder ver los datos que te están llegando por post

Otra consulta, te esta llegando al Header("Location:$thank");

capaz que no tenes configurado el smtp
  #7 (permalink)  
Antiguo 23/07/2010, 10:47
Avatar de gengeru  
Fecha de Ingreso: agosto-2006
Mensajes: 9
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: Formulario que llegue a correo

El_Astur, he probado tu código (después de encontrar mi error) tal cual lo has publicado y FUNCIONA :S. Imagino que el smtp sí lo tienes bien configurado pues te llegan los mails así que verifica si $_POST recoge valores o no (usa var_dump($POST); ó print_r($_POST);).

Por cierto, mi error estaba en el enctype del form. Lo he eliminado y ya funciona (bueno, lo he definido como "application/x-www-form-urlencoded").

PD: El header si que llega y redirecciona bien, gracias a ti también carlosdanielmou
  #8 (permalink)  
Antiguo 23/07/2010, 20:14
El_Astur
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Formulario que llegue a correo

Voy a probar a ver y os cuento.
  #9 (permalink)  
Antiguo 10/08/2010, 11:13
El_Astur
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Formulario que llegue a correo

Gengeru, he tardado un poquito en responderte pero ya lo he solucionado. Como tú bien dices con ese código funciona correctamente. Lo que pasaba es que tenian que desactivar en el servidor el safe-mode y ahora ya funciona perfectamente.
Muchísimas gracias por la ayuda a ti y todos los demás. Cada vez me gusta más este foro ya que uno puede salir de laberintos en los que se ha metido con la ayuda de la gente.
  #10 (permalink)  
Antiguo 10/08/2010, 11:17
El_Astur
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Formulario que llegue a correo

Bueno chicos, gracias a todos por vuestra ayuda.
El problema estaba en el servidor pues estaba activado el safe-mode con lo cual no funcionaba el PHP (me dí cuenta al comentármelo vosotros).
El código, por lo tanto, funciona correctamente así que si a alguno os puede servir de ayuda en algun momento es todo vuestro.
Un saludo y muchísimas gracias de nuevo.

Etiquetas: correo, 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 20:00.