hola buenas yo tenia el mismo problema, intente seguir el tutorial pero no me funcionaba la aplicacion. comprobé las rutas, modifiqué el codigo muchas veces (como buen novatillo
), y estuve buscando muchas respuestas en diferentes foros. al final, aunque no del todo porque aun me tengo que informar de algunas cosas, pude conseguir algo util mezclando el codigo del tutorial con una posible solucion que nos ofrece el amigo del ultimo post. lo que hice fue usar el codigo del tutorial pero con un solo objeto LoadVars. Al final la web que esta colgada funciona, lo que me falta ahora es conseguir incluir la informacion del remitente (con headers : From:, Re-ply y eso). Bueno el tema yo creo que esta en el intercambio de informacion entre el archivo flash y el PHP.
Bueno aqui os dejo los codigos para que los probeis si quereis y por si os ayuda a hallar una solucion. Ya se que este tema esta un poco abandonado pero espero que os sirva
-----Flash - Codigo del boton. (ActionScript 2.0)
on(release) {
_parent.enviarMail();
}
//es curioso y no se porque pero si no pongo _parent no funciona. Quiza si la funcion fuera publica...
-----Flash - Codigo fotograma 1 pelicula principal. (ActionScript 2.0)
var enviar_lv:LoadVars = new LoadVars();
function enviarMail() {
enviar_lv.para = para_txt.text;
enviar_lv.asunto = asunto_txt.text;
enviar_lv.mensaje = mensaje_txt.text;
enviar_lv.sendAndLoad("enviar.php", enviar_lv, "POST");
}
enviar_lv.onLoad = function(exito)
{
if (exito)
{
para_txt.text = "Mensaje Enviado";
//trace("datos enviados.");
//trace("nombre: "+this.para);
//trace("email: "+this.asunto);
//trace("clave: "+this.mensaje);
//estas lineas(comentarios) de arriba son para probar si la película recibe los datos desde el PHP
}
else
{
para_txt.text = "Mensaje NO Enviado";
}
}
// La solucion la encontré cuando utilicé sólo un objeto LoadVars para todo y cambie el codigo del post
// anterior de la siguiente manera:
-----En vez de utilizar el codigo sugerido por Siti, que no me funciono pero me salvó al final, (este):
enviar_lv.onLoad = function()
{
if (this.exito=="ok")
{
trace("datos enviados.");
//datos recibidos
trace("nombre: "+this.para);
trace("email: "+this.asunto);
trace("clave: "+this.mensaje);
}
else
{
trace ("nop pasa naranja ");
}
}
-----Aunque no utilice este codigo si que utilice uno muy parecido que lo teneis arriba en el codigo del primer fotograma de la pelicula en flash. Y lo que cambié es que en vez de utilizar this.exito=="ok" como comparacion para el IF, lo que puse fue el codigo del tutorial
http://www.cristalab.com/tutoriales/enviar-correo-electronico-en-flash-usando-loadvars-c7l/ que sugiere utilizar simplemente IF(exito) {
-----Por ultimo este es el codigo del archivo enviar.php:
<?php
$para = $_POST['para'];
$asunto = $_POST['asunto'];
$mensaje = $_POST['mensaje'];
mail($para, $asunto, $mensaje);
echo ("$para");
echo ("$asunto");
echo ("$mensaje");
?>
// que efectivamente me devuelve las variables a Flash.
Bueno espero haber servido de ayuda para alguien. Y gracias a todos los otros posteadores.