Foros del Web » Programando para Internet » PHP »

Formulario para mail y bd

Estas en el tema de Formulario para mail y bd en el foro de PHP en Foros del Web. He realizado un formulario para insertar los datos en una bd de mysql y enviar un mail con los mismos. Tengo dos problemas, uno, solo ...
  #1 (permalink)  
Antiguo 26/12/2002, 04:57
ivanff
Invitado
 
Mensajes: n/a
Puntos:
Formulario para mail y bd

He realizado un formulario para insertar los datos en una bd de mysql y enviar un mail con los mismos.
Tengo dos problemas, uno, solo me funciona cuando lo envio sin remitente (algo que no me sirve) y, segundo, que no me lo envia en formato html.
Aquí les pego el código para que alguien me indique como solucionar los problemas, gracias.


<html>
<body>
<?
mysql_connect ("localhost","ivanff","egoista");
$registro=mysql_db_query ("ivanff", "insert into tabla (titulo,texto,fecha,autor,resena,tipo) values ('$titulo','$texto','$fecha','$autor','$resena','$ tipo')");

$destinatario = "[email protected]";
$asunto = "El artículo del día";

$cuerpo = "<html><head><meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'><link rel='stylesheet' type='text/css' href='http:///www.solowebmasters.net/estilo.css'></head> <body>
<font class=semana>El artículo de la semana:</font><font class=titulo>$titulo</font><font class=autor>por $autor</font><hr size='1' noshade></p><font class=texto>$texto</font><font class=resena><hr>$resena<hr></font></body></html>";

$enviado= mail ($destinatario,$asunto,$cuerpo);

if ($enviado)
{
print "Envio insertado";
}
else
print "Envio incorrecto";
?>


</body>
</html>


FELIZ NAVIDAD!!!
  #2 (permalink)  
Antiguo 26/12/2002, 05:07
Avatar de ferent  
Fecha de Ingreso: junio-2002
Ubicación: Madrid
Mensajes: 633
Antigüedad: 15 años, 5 meses
Puntos: 0
Te recomiendo que lo hagas con CGI de PERL, es más laborioso pero puedes controlar todo el formato.

Un saludo
__________________
Culto es aquel que sabe donde encontrar lo que no sabe.
  #3 (permalink)  
Antiguo 26/12/2002, 09:50
Avatar de chalito  
Fecha de Ingreso: diciembre-2002
Ubicación: Santiago, chile
Mensajes: 221
Antigüedad: 15 años
Puntos: 0
Hola
la verdad es que tu problema es mucho mas facil de solucionar, no tienes para que usar PERL, haslo con PHP, es mas facil y bonito, veras, si le hechas un vistazo al manual de PHP veras que la funcion mail() esta definida de la siguiente forma

Código PHP:
mail string parastring sobrestring mensaje [, string cabeceras_adicionales]) 
donde claramente el string para pones el mail al que quieres enviarlo, en sobre pones el asunto, en mensaje pones el mensaje, y como veras hay un cuarto parametro que es opcional y tu no lo estas usando, es precisamente aqui donde tu dices si el mensaje sera enviado en formato HTML, si no lo haces, lo envia como texto puro por defecto, tambine aqui es donde pones el remitente, entonces lo unico que debes hacer es hacer esto

Código PHP:
mail $para$asunto$mensaje"From:
$tumail\nReply-To: $tumail"

y listo, asi ya deberia funcionar correctamente, solo estaria faltando la cabecera que indica que el mensaje sera enviado en formato HTML, pero en este momento no la recuerso, pero estoy seguro que alguien mas la podra poner aqui y solo tendras que agregarla dentro del campo de las cabeceras

Suerte
  #4 (permalink)  
Antiguo 26/12/2002, 12:35
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Todas las cabeceras que puedes usar en mail() .. (desde como usarlo para HTML .. hasta los FROM .. BCC y demas) los tienes definidos en el manual oficial de PHP .. hay un ejemplo completo de uso .. que (valga la rebundacia) usa todas las cabeceras y envia un e-mail en HTML ..

http://us.php.net/manual/en/function.mail.php

Eso sí, en la version Ingles .. en la versión en castellano no está tan completa (creo).

Un saludo,
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 23:50.