Foros del Web » Programando para Internet » PHP »

Formulario en php, con mail en formato HTML

Estas en el tema de Formulario en php, con mail en formato HTML en el foro de PHP en Foros del Web. Hola, Estoy haciendo un formulario de contacto en php que envía un correo en formato html al destinatario de la acción que indica el php. ...
  #1 (permalink)  
Antiguo 26/08/2009, 14:55
 
Fecha de Ingreso: abril-2009
Mensajes: 7
Antigüedad: 15 años
Puntos: 0
Formulario en php, con mail en formato HTML

Hola,

Estoy haciendo un formulario de contacto en php que envía un correo en formato html al destinatario de la acción que indica el php.

Es más menos así como se recive el correo:

websnap.hostoi.com/directorio/mail.html (por anti-spam tiene que ser así, copiar y pegar )

El codigo del php es el siguiente:

Código PHP:
<?php 

$destinatario 
"correo1, correo2, correo3";

$subject "Contacto via Sitio Web";

$resp file('contacto.txt');

$line join(""$resp);

$line str_replace("%nombre%"$_POST["nombre"], $line);

$line str_replace("%empresa%"$_POST["empresa"], $line);

$line str_replace("%mail%"$_POST["mail"], $line);

$line str_replace("%telefono%"$_POST["telefono"], $line);

$line str_replace("%direccion%"$_POST["direccion"], $line);

$line str_replace("%comuna%"$_POST["comuna"], $line);

$line str_replace("%comentarios%"$_POST["comentarios"], $line);

$line str_replace("%fecha%"$_POST["date('d/m/Y', time()"], $line);

$headers "From: Sitio Web Proedi <correo>\n";

$headers .= "X-Mailer: Sistema Automatizado WebSnap v.31082004\n";

$headers .= "Mime-Version: 1.0\n"

$headers .= "Content-type: text/html; charset=iso-8859-1\n";

mail("$destinatario""$subject"$line"$headers");

header("Location: enviado.html");

?>
Como pueden ver lo que se hace es que la acción php toma los distintos campos del formulario y los agrega al mail.html que es tomado a partir de un archivo .txt.

El problema lo tengo con las fechas, ya que no me la inclyue dentro del mensaje.
El mensaje llega con todos los antecedentes, en ese sentido funciona, lo único que no he podido hacer es lo que tiene referencia con la fecha.

Les digo que esto lo hice copiando y pegando desde otro formulario que encontré, ya que de php no tengo mucha idea, y que me pareció muy buena idea.

Les agradecería cualquier aporte.

Muchas Gracias,
Rodrigo
  #2 (permalink)  
Antiguo 26/08/2009, 15:09
Avatar de De_la_Cuesta_13  
Fecha de Ingreso: abril-2009
Ubicación: Cali, Colombia.
Mensajes: 265
Antigüedad: 15 años
Puntos: 14
Respuesta: Formulario en php, con mail en formato HTML

Compañero, PHP trabaja con los tipos fecha. Ej:
echo date('Y-m-d'); -> Te mostraría: 2009-08-26.
Entonces esto te serviría si le agregas al asunto (lo mejor sería que declares una variable q contenga el date), el asunto original más la fecha. Te sugiere revises el date, es bastante fácil de usar, y lo aplicas como más te convenga.
Saludos.
  #3 (permalink)  
Antiguo 26/08/2009, 15:10
 
Fecha de Ingreso: septiembre-2007
Mensajes: 83
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Formulario en php, con mail en formato HTML

yo creo que tu problema esta aqui:

$line = str_replace("%fecha%", $_POST["date('d/m/Y', time()"], $line);
deberia de ser asi:

$line = str_replace("%fecha%", $_POST[date('d/m/Y', time()], $line);

sin las comillas
  #4 (permalink)  
Antiguo 26/08/2009, 15:33
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: Formulario en php, con mail en formato HTML

de hecho es sin el $_POST
de lo contrario le estarias diciendo que el nombre de la variable que busca el resultado del date
$_POST["26/08/2009"]

hay 2 opciones

si estas pasando la fecha desde tu forma de contacto en un campo
$line = str_replace("%fecha%", $_POST["nombre_campo"], $line);

si no existe ese campo y lo quieres tomar del momento en que se ejecuta el codigo
$line = str_replace("%fecha%", date('d/m/Y', time()), $line);

Ademas que tenia un error esa funcion date; te faltaba cerrar parentesis...
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810
  #5 (permalink)  
Antiguo 26/08/2009, 15:35
 
Fecha de Ingreso: abril-2009
Mensajes: 7
Antigüedad: 15 años
Puntos: 0
Cita:
Iniciado por ryuk Ver Mensaje
yo creo que tu problema esta aqui:

$line = str_replace("%fecha%", $_POST["date('d/m/Y', time()"], $line);
deberia de ser asi:

$line = str_replace("%fecha%", $_POST[date('d/m/Y', time()], $line);

sin las comillas
No funcionó sin comillas

Cita:
Parse error: syntax error, unexpected ']' in /home/a1838698/public_html/proedi/enviar1.php on line 25
Gracias de todos modos.

Saludos,
Rodrigo.

Cita:
Iniciado por Avatar810 Ver Mensaje
de hecho es sin el $_POST
de lo contrario le estarias diciendo que el nombre de la variable que busca el resultado del date
$_POST["26/08/2009"]

hay 2 opciones

si estas pasando la fecha desde tu forma de contacto en un campo
$line = str_replace("%fecha%", $_POST["nombre_campo"], $line);

si no existe ese campo y lo quieres tomar del momento en que se ejecuta el codigo
$line = str_replace("%fecha%", date('d/m/Y', time()), $line);

Ademas que tenia un error esa funcion date; te faltaba cerrar parentesis...
Ahora si funcionó!!!!

Muchas gracias Avatar810

Muchas gracias a todos.

Saludos,
Rodrigo.

Última edición por GatorV; 26/08/2009 a las 15:45
  #6 (permalink)  
Antiguo 26/08/2009, 17:19
 
Fecha de Ingreso: abril-2009
Mensajes: 7
Antigüedad: 15 años
Puntos: 0
Respuesta: Formulario en php, con mail en formato HTML

Hola,

Yo de nuevo

El formulario funciona super bien, agradecimientos de nuevo a Avatar810.

El punto es que ahora el mail entrega todo el contenido de los comentarios en una sola linea, es decir, si los comentarios ingresados son:

"Hola,

Quisiera consultar por los servicios que ustedes entregan.

Les ruego me envíen información al respecto.

Agradeciendo su atención,
Saluda Cordialmente,
Friedrich Wilhelm Nietzsche.
"

Lo que se recibe en el correo es lo siguiente:

Hola,Quisiera consultar por los servicios que ustedes entregan.Les ruego me envíen información al respecto.Agradeciendo su atención,Saluda Cordialmente,Friedrich Wilhelm Nietzsche.


¿Hay alguna manera de corregir esto?, ¿donde puedo averiguarlo?

Muchas Gracias,
Rodrigo.
  #7 (permalink)  
Antiguo 27/08/2009, 10:17
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: Formulario en php, con mail en formato HTML

segun esto esta en formato HTML
$headers .= "Content-type: text/html; charset=iso-8859-1\n";

Si en tu archivo .txt solo hay saltos de linea (enter) o \n estos no son interpretados correctamente

Cada salto de linea debe ponerse un <br> para que sea interpretado correctamente

y en el caso que no puedas editar el TXT original esta es una alternativa:
a cada $_POST y date concatenale un (o los que consideres necesarios...) <br>

quedaria algo asi
$line = str_replace("%nombre%", $_POST["nombre"]."<br>", $line);

Saludos
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810
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 21:28.