La situacion es la siguiente:
El formulario esta hecho (podeis verlo en www.e-2.es ) los codigos son los siguientes por la parte del flash:
Código :
enviar.onRelease = function(){
mensaje_txt.text = "Enviando su correo ...";
enviarMail();
}
//Declaro las variables para enviar y para recibir
var envio_lv:LoadVars = new LoadVars();
var recibir_lv:LoadVars = new LoadVars();
//Función que envia el forumlario
function enviarMail() {
envio_lv.nombre = nombre_txt.text;
envio_lv.email = email_txt.text;
envio_lv.cuerpo = comentario_txt.text;
envio_lv.lloc = lloc_txt.text;
envio_lv.dia = dia_txt.text;
envio_lv.hora = hora_txt.text;
envio_lv.sendAndLoad("email.php", recibir_lv, "POST");
//Aqui ustedes pueden cambiar de form.php a form.asp dependiendo del servidor
//que usen
}
//Función que procesa los datos recibidos del servidor
recibir_lv.onLoad = function(exito) {
if (exito) {
estado_txt.text = this.estado;
} else {
//Muestra un mensaje de error en negrita
estado_txt.text = "Error en la aplicación de correo";
}
};
La parte del php me la envio la empresa responsable del hosting y funcionar lo que es funcionar... va de perlas. El problema es que lo unico que hace es enviar un correo diciendo que...bueno...que funciona. el detalle es cuando yo intento cambiar el mensage de que funciona por el contenido de una celda del formulario (por ejemplo de la comentarios), que simplemente hace como si no existiera variable alguna...
ahi va el codigo en php. Las partes separadas por una doble linea de # son las lineas que he añadido yo para adaptarlo a mis necesidades:
Código :
<?php // Este ejemplo se ha creado usando un archivo de nombre email_send.php //------------------------------------------------------------------------------------------------------------------------------------------------------------- // Partiendo de la idea inicial del sitio de documentación de php en http://de.php.net/manual/en/ref.mail.php // hemos modificado un ejemplo existente ahí y hemos creado este script que corre perfectamente en Strato... // // si desea probar este script al menos substituya la dirección del correo electrónico en la variable // $to_email (cambiando el valor del email "[email protected]" por uno suyo para comprobarlo // así puede usted simplemente poner en la URL de su navegador (Firefox, IExplorer) // http://midominio.es/email_send.php (***) // // *** claro que debe poner aquí el nombre de su dominio y descargar este script antes en el root/directorio // principal de su alojamiento. Esto es un ejemplo simple y le toca a usted adecuarlo a su formulario... //------------------------------------------------------------------------------------------------------------------------------------------------------------- # Tipo de Sistema operativo? OS Windows or Mac or Linux if (strtoupper(substr(PHP_OS,0,3)=='WIN')) { $eol="\r\n"; } elseif (strtoupper(substr(PHP_OS,0,3)=='MAC')) { $eol="\r"; } else { $eol="\n"; } # Emilio de destino... # Puede capturar valores como este enviados desde un formulario de contacto con instrucciones como: # $to_email=$HTTP_POST_VARS['destino']; $to_email="[email protected]"; ######################################### ######################################### # variables para las partes del mensage $nom = $_POST["nombre"]; $contacte = $_POST["email"]; $comentari = $_POST["comentario"]; $dia = $_POST["dia"]; $lloc = $_POST["lloc"]; $hora = $_POST["hora"]; ########################################## ########################################## # Dirección de correo del remitente (la suya)... $from_nombre = "Mi Nombre"; $from_email = "[email protected]"; # Asunto del mensaje $emailsubject="PETICION DE PRESUPUESTO".date("Y/m/d H:i:s"); # Cuerpo del mensaje // ob_start(); // require("emailbody.php"); // Aquí puede especificar una bella página para que salga acompañando al script... // $body=ob_get_contents(); ob_end_clean(); $body="<b>Este es el cuerpo del correo electrónico en html <b>enviado desde <a href='mailto:$from_email'>$from_email</a>"; # Encabezamiento $headers = "From: $from_nombre <$from_email>".$eol; // dirección del remitente-> la suya... $headers .= "Reply-To: $from_nombre <$from_email>".$eol; // para especificar la dirección de reenvío (se puede dejar en blanco o no especificar).. $headers .= "Return-Path: $from_nombre <$from_email>".$eol; // para especificar la dirección de respuesta $headers .= "Message-ID: <$now Sistema@".$_SERVER['SERVER_NAME'].">".$eol; $headers .= "X-Mailer: PHP v".phpversion().$eol; // Esto ayuda a eliminar los spams... # Boundry for marking the split & Multitype Headers $mime_boundary=md5(time()); $headers .= 'MIME-Version: 1.0'.$eol; $headers .= "Content-Type: multipart/related; boundary=\"".$mime_boundary."\"".$eol; $msg = ""; # Adjunto // $msg .= "--".$mime_boundary.$eol; // $msg .= "Content-Type: application/pdf; name=\"".$archivo_adjunto."\"".$eol; // sometimes i have to send MS Word, use 'msword' instead of 'pdf' // $msg .= "Content-Transfer-Encoding: base64".$eol; // $msg .= "Content-Disposition: attachment; filename=\"".$archivo_adjunto."\"".$eol.$eol; // !! This line needs TWO end of lines !! IMPORTANT !! // $msg .= $f_contents.$eol.$eol; # Configuración de texto o html... $msg .= "Content-Type: multipart/alternative".$eol; # Versión de texto $msg .= "--".$mime_boundary.$eol; $msg .= "Content-Type: text/plain; charset=iso-8859-1".$eol; $msg .= "Content-Transfer-Encoding: 8bit".$eol; $msg .= "Este es un mensaje multi-part en formato MIME.".$eol; ############################## ############################## $msg .= "++ESTA ES UNA PRUEBA DE ENVIO DE E-MAIL MEDIANTE PHP++ $comentari"; ############################## ############################## # Versión de HTML $msg .= "--".$mime_boundary.$eol; $msg .= "Content-Type: text/html; charset=iso-8859-1".$eol; $msg .= "Content-Transfer-Encoding: 8bit".$eol; $msg .= $body.$eol.$eol; # Terminando el email $msg .= "--".$mime_boundary."--".$eol.$eol; //Terminando con dos eols para mejor seguridad. Ver Injection... # Enviar el email de forma tradicional usando la función mail()... ini_set(sendmail_from,$from_email); // la dirección del email del remitente en el archivo de configuración .INI se cambia por la especificada aquí!! mail($to_email, $emailsubject, $msg, $headers); ini_restore(sendmail_from); ?>
yo no tengo NI IDEA de php lo unico que se es lo que he semientendido de lo que he ido masticando mientras iva navegando con mi llate de lujo por la web... (osea hacer variables...
Alguien me puede explicar que sucede? llevo dandole vueltas varios dias, estoy seguro que es una question de que he escrito algun codigo mal y lo corregiria yo mismo...si no fuera porque no se nada de php...
Muchas gracias gente...
