Foros del Web » Programando para Internet » PHP »

phpmailer + variables ---- ayuda

Estas en el tema de phpmailer + variables ---- ayuda en el foro de PHP en Foros del Web. buenas a todos, os comento mi caso. estoy haciendo un formulario en flash ,pero mi problema lo tengo con el php. el formulario se trata ...
  #1 (permalink)  
Antiguo 30/09/2005, 03:03
 
Fecha de Ingreso: mayo-2005
Mensajes: 57
Antigüedad: 12 años, 7 meses
Puntos: 0
phpmailer + variables ---- ayuda

buenas a todos, os comento mi caso. estoy haciendo un formulario en flash ,pero mi problema lo tengo con el php.
el formulario se trata de un curriculum que al darle a enviar paso las variables de flash a php y doy la opcion de insertar una foto. finalmente tengo un boton enviar.
pues bueno, soy capaz de mandar el adjunto, pero lo que no sé hacer es pasar las variables.
he probado incluso asi:
$mail->Body = $_POST["nombre"]." escribio :\n";

pero no consigo pasar la variable nombre.

alguien sabe como hacerlo???
a lo mejor es una chorrada de comillas, por que no manejo php.

un saludo y si alguien me puede ayudar se lo agradecería.

a lo mejor no me expresé muy bien.....bueno, un saludo
  #2 (permalink)  
Antiguo 30/09/2005, 13:26
 
Fecha de Ingreso: mayo-2005
Mensajes: 57
Antigüedad: 12 años, 7 meses
Puntos: 0
nadie sabe??

alguien sabe de phpmailer??
  #3 (permalink)  
Antiguo 01/10/2005, 07:40
 
Fecha de Ingreso: agosto-2005
Mensajes: 3
Antigüedad: 12 años, 4 meses
Puntos: 0
Verifica si utilizas POST o GET

Yo sé de phpmailer. Incluso de flash pero no sé si entiendo del todo la pregunta.
En cualquier caso para enviar los datos del formulario por email debes hacer algo así: (Supongamos que envias un mail en formato texto plano)

$mail->isHtml(false);
$mail->Body = "Hola esto es una prueba. El nombre del suaurio es".$nombre;

Atención aquí! pongo '$nombre' ess la variable que viene de tu form. De un input type name 'nombre'. Puedes utilizar $_POST['nombre'] si realmente envias los datos por post. Si los envias por get (por defecto si no especificas nada) deberás poner $_GET['nombre']. Lo que yo he puesto : $nombre sólo te funcionará si en el php.ini está register_globals=on.
Total, prueba con:

$mail->Body = "Hola esto es una prueba. El nombre del suaurio es".$_GET['nombre'];

y ya me dirás

Un saludo y suerte!

PW
http://jcasamitjana.blogspot.com/
  #4 (permalink)  
Antiguo 01/10/2005, 13:37
 
Fecha de Ingreso: mayo-2005
Mensajes: 57
Antigüedad: 12 años, 7 meses
Puntos: 0
te cuento

buenas jcasamitjana, primeramente darte las gracias por contestar y entonces te comento lo que tengo:

el el flash mando los datos de este modo:
(este es parte del código)

form_lv = new LoadVars();
form_lv.nombre = nombre.text;
form_lv.apellidos = apellidos.text;
form_lv.fecha_nacimiento = fecha_nacimiento.text;
form_lv.estado_civil = estado_civil.text;
form_lv.n_hijos = n_hijos.text;
form_lv.email = email.text;
form_lv.direccion = direccion.text;
form_lv.localidad = localidad.text;
form_lv.provincia = provincia.text;
form_lv.telefono = telefono.text;
form_lv.estudios = estudios.text;
form_lv.experiencia = experiencia.text;
form_lv.send("send.php", form_lv, "POST");


y en el php, lo que pretendo hacer es el boton de examniar para adjuntar la foto al curriculum.

logro recibir el adjunto pero no doy pasado las variables. este es el código que tengo: (he probado de varios modos incluso adjuntando los datos en un .txt):

<?

//Es necesario que al menos halla una dirección de destino
$error="";
if ($enviar) {
if (!$archivo){
$error.="Debe insertar la Foto";
}
}

if ($enviar && !$error) {

//pasamos a enviar el correo

// primero hay que incluir la clase phpmailer para poder instanciar
//un objeto de la misma
require "includes/class.phpmailer.php";

//instanciamos un objeto de la clase phpmailer al que llamamos
//por ejemplo mail

$mail = new phpmailer();

//Definimos las propiedades y llamamos a los métodos
//correspondientes del objeto mail

//Con PluginDir le indicamos a la clase phpmailer donde se
//encuentra la clase smtp que como he comentado al principio de
//este ejemplo va a estar en el subdirectorio includes
$mail->PluginDir = "includes/";

$mail->SetLanguage ($es,$language); (esto creo k está mal)

//Con la propiedad Mailer le indicamos que vamos a usar un
//servidor smtp
$mail->Mailer = "smtp";

//Asignamos a Host el nombre de nuestro servidor smtp
$mail->Host = "aqui pongo mi host";

//Indicamos cual es nuestra dirección de correo y el nombre que
//queremos que vea el usuario que lee nuestro correo
$mail->From = "un amigo";

$mail->AddAddress("aqui la direccion de correo");

$mail->FromName = "Curriculum Vitae";
$mail->IsHTML(false);
$mail->ContentType = "text/plain";
$mail->CharSet = "iso-8859-1";

//Asignamos asunto y cuerpo del mensaje
//El cuerpo del mensaje lo ponemos en formato html, haciendo
//que se vea en negrita
$mail->Subject = "Curriculum Vitae";

$nombre = $_POST["nombre"]." Escribio :\n";
$nombre = utf8_decode($nombre);
$apellidos = $_POST["apellidos"];
$apellidos = utf8_decode($apellidos);

$DescriptorFichero = fopen("curriculum.txt","w");
$string1 = $nombre.";";

fputs($DescriptorFichero,$string1);


$string2 = $apellidos.";";

fputs($DescriptorFichero,$string2);


fclose($DescriptorFichero);

$archivo2 ="curriculum.txt";

$archivo_name2 = "curriculum.txt";

if ($achivo2 !="none") {

$mail->AddAttachment($archivo2,$archivo_name2);

}

//Definimos AltBody por si el destinatario del correo no admite
//email con formato html
$mail->AltBody = "Curriculum Vitae";
$mail->Body = "Curriculum";


//el valor por defecto 10 de Timeout es un poco escaso dado que voy a usar
//una cuenta gratuita y voy a usar attachments, por tanto lo pongo a 120
$mail->Timeout=120;

//Indicamos el fichero a adjuntar si el usuario seleccionó uno en el formulario

if ($achivo !="none") {
$mail->AddAttachment($archivo,$archivo_name);
}

//se envia el mensaje, si no ha habido problemas la variable $success
//tendra el valor true

$exito = $mail->Send();

//Si el mensaje no ha podido ser enviado se realizaran 4 intentos mas
//como mucho para intentar enviar el mensaje, cada intento se hara 5 s
//segundos despues del anterior, para ello se usa la funcion sleep
$intentos=1;
while((!$exito)&&($intentos<5)&&($mail->ErrorInfo!="SMTP Error: Data not accepted")){
sleep(5);
//echo $mail->ErrorInfo;
$exito = $mail->Send();
$intentos=$intentos+1;
}

//La clase phpmailer tiene un pequeño bug y es que cuando envia un mail con
//attachment la variable ErrorInfo adquiere el valor Data not accepted, dicho
//valor no debe confundirnos ya que el mensaje ha sido enviado correctamente
if ($mail->ErrorInfo=="SMTP Error: Data not accepted") {
$exito=true;
}

if(!$exito)
{
echo "Problemas enviando correo electrónico a ".$valor;
echo "<br>".$mail->ErrorInfo;
}
else
{
//Mostramos un mensaje indicando las direccion de
//destino y fichero adjunto enviado en el mensaje
$mensaje="<p>Mensado enviadobr>";
$mensaje.=$valor." ";
if ($archivo !="none") {
$mensaje.="Con un fichero adjunto llamado ".$archivo_name;
//}
$mensaje.="</p>";
echo $mensaje;


}
// Borro las direcciones de destino establecidas anteriormente
$mail->ClearAddresses();

}
echo "<a href='$PHP_SELF'> Volver al Formulario</a>";
echo "<a href='$PHP_SELF'> Cerrar</a>";
}
else {
?>


<HTML>
<BODY>
<? If ($error) echo "<font color='red'>$error</font>";?>
<FORM ENCTYPE="multipart/form-data" METHOD="post" ACTION="<?=$PHP_SELF?>" NAME="form1">
<tr>
<td class="textoNormalNegroNegrita"><div align="center">Es necesaria la
inserci&oacute;n de t&uacute; foto para que tramitemos el curriculum.
Pulsa &quot;Examinar&quot; e introduzca la foto.
<br>
<br>
</div></td>
</tr>
<TABLE BORDER=0 ALIGN="CENTER">
<TD>Insertar Foto:</TD>
<input type="hidden" name="MAX_FILE_SIZE" value="307200">
<TD><INPUT TYPE="file" NAME="archivo" SIZE="35"></TD>
</TR>
<TR>
<TD COLSPAN="2" ALIGN="CENTER"><INPUT TYPE="submit" VALUE="Enviar" name="enviar"></TD>
</TR>
</TABLE>
</FORM>
</BODY>
</HTML>
<?
}
?>


realmente no sé si se puede hacer las dos cosas (mandar el adjunto y las variables).

en cuanto al php.ini, decirte que no tengo ni idea de ese archivo, ni si lo tengo.por que estoy haciendo pruebas en una carpeta del servidor y no tengo acceso a lo principal.

gracias por tu respuesta y a ver si damos con el problema, a lo mejor es una pijada por que yo no controlo en php.

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 00:36.