desesperado:formulario flash y php

ReYzell

buenos dias, tengo una pagina creada cpn macromedia flash profesional 8 y tengo dos formularios.
me gustaria enviar los formularios a una direccion de mail mediante PHP.

os dejo los codigos de uno de ellos por que no se que estoi haciendo mal.haber si me podeis alludar.por que me tiene por la calle de la amargura

Codigo flahs:
lo tengo puesto en un el boton enviar

on (release){
var lvsend:LoadVars = new LoadVars();
var lvrecv:LoadVars = new LoadVars();
lvsend.nombre = txtnombre.text;
lvsend.apellidos = txtapellidos.text;
lvsend.domicilio = txtdomicilio.text;
lvsend.postal = txtpostal.text;
lvsend.ciudad = txtciudad.text;
lvsend.telefono = txttelefono.text;
lvsend.edad = txtedad.text;
lvsend.empresa = txtempresa.text;
lvsend.demartamento = txtdepartamento.text;
lvsend.puesto = txtpuesto.text;
lvsend.actividades = txtactividades.text;
lvsend.laboral = txtlaboral.text;
lvsend.email = txtemail.text;
lvsend.mensaje = txtmensaje.text;
lvsend.sendAndLoad("trabajo.php", lvrecv, "POST");
lvrecv.onLoad = function() {
	if (lvrecv.rpta == "ok") {
		txtestado2.text = "Enviado con exito";
	} else {
		txtestado2.text = "Error en el envio";
	}
}
}

on (rollOver) {
status = "Enviar";
}
on (rollOut) {
status = "";
}

Codigo PHP:el archivo se llama trabajo.php

if ($_POST['email'] = "") {
$dest = "[email protected]";
$head = "From: ".$_POST['email']."\r\n";
$head.= "To: [email protected]\r\n";
$msg = "------------------------------- \n";
$msg.= "         Comentarios            \n";
$msg.= "------------------------------- \n";
$msg.= "NOMBRE:   ".$_POST['nombre']."\n";
$msg.= "APELLIDOS:   ".$_POST['apellidos']."\n";
$msg.= "DOMICILIO:   ".$_POST['domicilio']."\n";
$msg.= "CODIGO POSTAL:   ".$_POST['postal']."\n";
$msg.= "CIUDAD:   ".$_POST['ciudad']."\n";
$msg.= "TELEFONO:   ".$_POST['telefono']."\n";
$msg.= "F.Nacimiento:   ".$_POST['edad']."\n";
$msg.= "EMPRESA:  ".$_POST['empresa']."\n";
$msg.= "EXP.LABORAL:   ".$_POST['laboral']."\n";
$msg.= "EMAIL:    ".$_POST['email']."\n";
$msg.= "HORA:     ".date("h:i:s a ")."\n";
$msg.= "FECHA:    ".date("D, d M Y")."\n";
$msg.= "------------------------------- \n\n";
$msg.= $_POST['mensaje']."\n\n";
$msg.= "------------------------------- \n";
$msg.= " Mensaje generado en www.mipaginaweb.net \n";

if (mail($dest, "Comentarios", $msg, $head)) {
echo "rpta=ok";
} else {
echo "rpta=error";
}
}
neo-ns

El problema que tienes creo es que tu haces:

$POST['nombre']; por ejemplo y en flash le dices que tenga lvsend.nombre y deverias hacer en la parte de php: $POST['lvsend.nombre']; diria...

Prueba a cambiar uno de ellos haver si es esto que yo te digo ;)

Yo uso este codigo por ejemplo:

on (release)
{
menu = pepito.text
getURL("./pepito.php", "", "POST");
}

ReYzell

voy a provar haber que tal me va.

gracias por la respuesta.

neo-ns

Mmmm creo que lo que te dije no soluciona nada por que he encontrado esto:

http://www.forosdelweb.com/f62/alguien-podria-enviarme-formulario-581359/

ReYzell

no,no funciono jajajaja.pero gracias de todas maneras.

empece de nuevo y si me funciono. pero al hacer el codigo del 2º formulario "grande"
me devuelve siempre error al enviar email.
pongo los dos codigos.

Codigo boton flash:
-fotograma 1

function enviar() {
	trace(t_nombre.text);
	//se crea un nuevo objeto LoadVars y se carga con los datos que vamos a enviar.
	datos_email.nombre =t_nombre.text;
	datos_email.email =t_email.text;
	datos_email.texto =t_texto.htmlText;
	datos_email.estado ="";
	//Se programa la función que se ejecutara al recibir la respuesta del servidor
	datos_email.onLoad = function() {
		trace(this);
		trace(this.estado);
		if (this.estado == "enviado") {
			//si el email se ha enviado, vamos al fotograma 2.
			gotoAndStop(3);
		} else {
			//en caso contrario, vamos al fotograma 3
			gotoAndStop(4);
		}
	};
	datos_email.sendAndLoad("enviar_email.php", datos_email, "post");
	gotoAndStop(2)
	}

-fotograma 2

System.useCodepage = false;
if(datos_email==null){
datos_email = new LoadVars();
datos_email.nombre ="";
datos_email.email ="";
datos_email.texto ="";
datos_email.estado ="";
}
t_nombre.text=datos_email.nombre;
t_email.text=datos_email.email;
t_texto.htmlText=datos_email.texto;

this.b_enviar.onPress = enviar;
stop();

fotograma 3:

this.b_enviar.onPress = function() {
	gotoAndStop(1);
};
stop();

PHP codigo:

<?php
	$destinatario="[email protected]";
	$cabeceras="MIME-Version: 1.0\r\n";
	$cabeceras .= "Content-type: text/html; charset=utf-8\r\n";
	$cabeceras.="From: {$_POST['nombre']}<{$de}>\r\n";
	$cabeceras.="Reply-To: {$_POST['email']}\r\n";
	$asunto="Contactar";
	$cuerpo=' Ha recibido un email de '.$_POST['nombre'].' ( '.$_POST['email'].' ) con el siguiente contenido:';
	$cuerpo.='<br>'.$_POST['texto'].'<br>';
	$de=$_POST['email'];
	if(mail($destinatario, $asunto, $cuerpo,$cabeceras)){
		echo utf8_encode('&estado=enviado');	 
	 }else{
	 	echo utf8_encode('&estado=no_enviado');	
	 } 
?>

Vale llegados a este punto todo funcionando ¿que hago mal en el siguiente codigo?.

Codigo boton flash:
fotograma1:

function enviar2() {
	trace(t_nombre.text);
	datos_email.nombre =t_nombre.text;
	datos_email.email =t_email.text;
	datos_email.texto =t_texto.htmlText;
	datos_email.apellido =t_apellido.text;
	datos_email.postal =t_postal.text;
	datos_email.ciudad =t_ciudad.text;
	datos_email.edad =t_edad.text;
	datos_email.telefono =t_telefono.text;
	datos_email.empresa =t_empresa.text;
	datos_email.departamento =t_departamento.text;
	datos_email.puesto =t_puesto.text;
	datos_email.haceres =t_haceres.htmlText;
	datos_email.estado ="";
	datos_email.onLoad = function() {
		trace(this);
		trace(this.estado);
		if (this.estado == "enviado") {
			//si el email se ha enviado, vamos al fotograma 2.
			gotoAndStop(3);
		} else {
			//en caso contrario, vamos al fotograma 3
			gotoAndStop(4);
		}
	};
	datos_email.sendAndLoad("trabajo.php", datos_email, "post");
	gotoAndStop(2)
	}

-fotograma2:

System.useCodepage = false;
if(datos_email==null){
datos_email = new LoadVars();
datos_email.nombre ="";
datos_email.email ="";
datos_email.texto ="";
datos_email.estado ="";
datos_email.apellido ="";
datos_email.postal ="";
datos_email.ciudad ="";
datos_email.edad ="";
datos_email.telefono ="";
datos_email.empresa ="";
datos_email.departamento ="";
datos_email.puesto ="";
datos_email.haceres ="";
}
t_nombre.text=datos_email.nombre;
t_email.text=datos_email.email;
t_texto.htmlText=datos_email.texto;
t_apellido.text=datos_email.apellido;
t_postal.text=datos_email.postal;
t_ciudad.text=datos_email.ciudad;
t_edad.text=datos_email.edad;
t_telefono.text=datos_email.telefono;
t_empresa.text=datos_email.empresa;
t_departamente.text=datos_email.departamento;
t_puesto.text=datos_email.puesto;
t_hacertes.htmlText=datos_email.haceres;
this.b_enviar.onPress = enviar2;
stop();

-fotograma3:

this.b_enviar.onPress = function() {
	gotoAndStop(1);
};
stop();

CODIGO PHP:

<?php
	$destinatario="[email protected]";
	$cabeceras="MIME-Version: 1.0\r\n";
	$cabeceras .= "Content-type: text/html; charset=utf-8\r\n";
	$cabeceras.="From: {$_POST['nombre']}<{$de}>\r\n";
	$cabeceras.="Reply-To: {$_POST['email']}\r\n";
	$asunto="Contactar";
	$cuerpo='NOMBRE:'.$_POST['nombre'].;
	$cuerpo='CODIGO POSTAL:'.$_POST['postal'].;
	$cuerpo='CIUDAD:'.$_POST['ciudad'].;
	$cuerpo='FECHA DE NACIMIENTO::'.$_POST['edad'].;
	$cuerpo='TELEFONO:'.$_POST['telefono'].;
	$cuerpo='EMPRESA ANTERIOR:'.$_POST['empresa'].;
	$cuerpo='DEPARTAMENTO:'.$_POST['departamento'].;
	$cuerpo='PUESTO:'.$_POST['puesto'].;
	$cuerpo='DESEMPEÑO:'.$_POST['haceres'].;
	$cuerpo='EXPERIENCIA LABORAL:'.$_POST['texto'].;
	$de=$_POST['email'];



if(mail($destinatario, $asunto, $cuerpo,$cabeceras)){
	echo utf8_encode('&estado=enviado');	 
 }else{
 	echo utf8_encode('&estado=no_enviado');	
 } 
?>
Crawler

La verdad no me he leído el código, antes de hacerlo un par de comprobaciones:

1) estás ejecutándolo en local? o en remoto?

2) tu servidor permite el envío de correo mediante mail() ?

Si estás en local, prueba en remoto.
Si en remoto sigue sin ir, prueba la clase phpmailer

3 (ahora si que me he leido el codigo por encima encima xD)
Están llegando las variables a php?
En vez de sendAndLoad, utiliza send en pagina en blanco y por GET, y comprueba con un par de echos en php.

ReYzell

si lo permite y si me funciona el php por que el primero me lo envia pero el segundo no.

gracias por la respuesta

Usuarios habituales

  • ReYzell
  • Crawler
  • neo-ns