Foros del Web » Programando para Internet » PHP »

Script envio de mails

Estas en el tema de Script envio de mails en el foro de PHP en Foros del Web. Hola, estoy empezandome a pegar con el PHP y mi primer proyecto es crear un newsletter. Las suscripciones y bajas se producen a través de ...
  #1 (permalink)  
Antiguo 09/04/2008, 14:52
 
Fecha de Ingreso: abril-2008
Mensajes: 7
Antigüedad: 16 años
Puntos: 0
Script envio de mails

Hola,

estoy empezandome a pegar con el PHP y mi primer proyecto es crear un newsletter. Las suscripciones y bajas se producen a través de un envio de email, he estado trabajando con un script en php pero me da problemas, quiero que cuando alguien se ha suscrito (despues de enviar el formulario) me redireccione a otra pagina del mismo sitio, es en esta parte donde me da el error: Warning: Cannot modify header information - headers already sent by (output started at /mnt/web4/21/47/51630247/htdocs/retovato/index.php:6) in /mnt/web4/21/47/51630247/htdocs/retovato/index.php on line 52.

El script que estoy utilizado para el envio de email es este:
<?
if (!$HTTP_POST_VARS){
?>
<form action="index.php" method="post">
<input type="text" name="email2" size="25" value="pon tu email" />
<input name="submit2" type="submit" value="Enviar" />
<br />
</form>
<?
}else{
//Estoy recibiendo el formulario, compongo el cuerpo
$cuerpo = "Formulario enviado\n";
$cuerpo .= "Email: " . $HTTP_POST_VARS["email"] . "\n";

//mando el correo...
mail("[email protected]","Formulario recibido",$cuerpo);

//redireciono a otra pagina
header("location:http://www.midireccion.com/conf_subs.php");
}
?>

El error hace referencia a la linea donde está la linea de codigo de la redireccion (header). Espero que podais hecharme una mano.

Saludos y muchas gracias.
  #2 (permalink)  
Antiguo 09/04/2008, 15:04
 
Fecha de Ingreso: marzo-2008
Mensajes: 173
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Script envio de mails

hola, ps te cuento k mi primer proyecto php fue lo mismo y tube varios problemas usando esa funcion mal() aveces enviaba y aveces y eso k ni le movia al codigo estaba bien rara :S la verdad estube batallando mucho y me recomendaron una clase. se llama htmlMimeMail, no lo pongo aki por k el codigo esta muy extenso pero la implementacion no es muy dificil y ya nunca me fallo busca en internet sobre ella y si no la encuentras pues ya veo la forma de pasartela por otro medio. o no se si en este foro se puedan adjuntar archivos?
  #3 (permalink)  
Antiguo 09/04/2008, 17:18
 
Fecha de Ingreso: marzo-2008
Mensajes: 173
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Script envio de mails

hola venderman ya te mando lo k te decia a tu mail, epsero k te sirva, ahi me cuentas como t funciono saludos
  #4 (permalink)  
Antiguo 09/04/2008, 17:27
 
Fecha de Ingreso: marzo-2008
Mensajes: 173
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Script envio de mails

ahh por cierto sobre el error k decias, jeje ke era tu pregunta original, el problema muchas veces es que escribes informacion antes del header

porejemplo en un archivo .php k tengo si antes del header escribo algo con echo antes k el header, asi:

Código PHP:
                ........ muchas lienas de codigo
    
{}
    else
    {}
    
    
mysql_close($link);
    
    echo 
"dddddddddddd";
    
header("Location: solicitud.php"); 

en el navegador vere esto:
Código:
dddddddddddd
Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\x_insertar_solicitud_aspirante.php:163) in C:\AppServ\www\x_insertar_solicitud_aspirante.php on line 165


si le kitas la linea echo "dddddddddddd";

ya no dara ningun error.




asi k en resumen no desplieges nada andes de un header, este debe ser lo rpimero del documento. espeor k me alla explicaod y te alla servido, saludos
  #5 (permalink)  
Antiguo 10/04/2008, 03:03
 
Fecha de Ingreso: abril-2008
Mensajes: 7
Antigüedad: 16 años
Puntos: 0
Re: Script envio de mails

Bueno aun no entiendo demasiado lo que me dices, esto del ph es un poco complicado para mi. Lo que me gustaria saber es: en que línea de mi script tendria que poner la linea "header" para que, una vez rellenado y enviado el formulario me redireccionase a otra pagina?

Muchas gracias por tu tiempo :)
  #6 (permalink)  
Antiguo 10/04/2008, 06:43
 
Fecha de Ingreso: abril-2008
Mensajes: 7
Antigüedad: 16 años
Puntos: 0
Re: Script envio de mails

Al fin he conseguido hacer funcionar la funcion mail. Cuesta un poco entender como funciona el lenguaje, pero con persistencia se consigue todo.

Gracias por la ayuda!!
  #7 (permalink)  
Antiguo 10/04/2008, 16:39
 
Fecha de Ingreso: marzo-2008
Mensajes: 173
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Script envio de mails

hola, si cuenta un poco enterner lo del envio de email pero funciona bien.

respecto a lo del header, me refiero a k no puedes poner codigo de esta forma:

Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
</head>

<body>

<algunas etiketas html>....</>
<algunas etiketas html>....</>
<algunas etiketas html>....</>

<?php algunas sentencias PHP ?>

<?php header("location:http://www.midireccion.com/conf_subs.php"); ?>

<?php algunas sentencias mas de PHP ?>

<algunas etiketas html>....</>
<algunas etiketas html>....</>
<algunas etiketas html>....</>
</body>
</html>
por k te sale el error k dices, lo k yo hago es en un archivo (por ejemplo SOLICITUD.PHP) pongo toda la interfaz, los formularios, botones etc. y en otro archivo insertar_solicitud.php porngo el codigo para hacer inserciones en la bd y si ocurrio algun error pongo un header hacia solicitud.php con una variable k indike k hubo error, algo asi header("location:solicitud.php?avisa_error=true");

aparte de header hay otras formas de redireccionar. la faq de java:

¿Como puedo redireccionar mi página a otras dependiendo de la resolución del browser del cliente?

t puede servir. tambien esta otra:


¿Como redireccionar a una página?

R.- Entre el <HEAD> y el </HEAD> de tu página debes poner lo siguiente:
Código:
<META HTTP-EQUIV="Refresh" CONTENT="@;URL=http://www.tusitioweb.com">
Donde @ es el tiempo que esperará a redireccionarse, puedes poner 0 para que rápido se redireccione.
  #8 (permalink)  
Antiguo 10/04/2008, 17:51
 
Fecha de Ingreso: marzo-2008
Mensajes: 173
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Script envio de mails

checa esta FAQ de php, la encontre de casualidad y pos vengo a ponertela:





Pregunta: ¿Como usar la funcion header() en cualquier parte de nuestro código incluso después de un echo?

Respuesta:
Pon antes de enviar ningín caracter ( donde pondrias un header() o una cookie ) el siguiente codigo:


Código PHP:
<?
ob_start();
?>
Y al final de todo de tu pagina pon:


Código PHP:
<?
ob_end_flush();
?>
__________________
  #9 (permalink)  
Antiguo 11/04/2008, 13:33
Avatar de ongraphic  
Fecha de Ingreso: marzo-2008
Ubicación: Bogotá Colombia
Mensajes: 24
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Script envio de mails

bueno no se si sirva pero para esto yo le meto algo de javascript despues del mail

echo "<script languaje=javascript> alert('Su mensaje fue enviado correctamente') </script>";
echo "<script languaje=javascript> document.location='solicitud.php' </script>";
?>
  #10 (permalink)  
Antiguo 15/04/2008, 17:49
 
Fecha de Ingreso: marzo-2008
Mensajes: 173
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Script envio de mails

hola ongraphic si creo k es buena idea, y por lo visto vendermnay ya no regreso
  #11 (permalink)  
Antiguo 16/04/2008, 16:46
 
Fecha de Ingreso: mayo-2006
Mensajes: 288
Antigüedad: 18 años
Puntos: 4
Re: Script envio de mails

si no te es de mucha molestia trata usando el PETMAILER aca mas informacion : http://www.forosdelweb.com/f18/envia...e-como-576745/
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 08:12.