Comunidad de diseño web y desarrollo en internet online

Error con sendAndLoad i php con funcion mail

Citar            
MensajeEscrito el 28 Feb 2009 04:00 pm
Buenas, tengo el típico fomulario de correo en una web flash. La pelicula principal carga el swf que contiene el formulario desde un subdirectorio. En el swf envio los datos así:

Código :

var enviar:LoadVars = new LoadVars ();
var rebre:LoadVars = new LoadVars ();
function enviarMail () {
   output = "";
   if (prov.text.length == 0) {
      output = "Por favor, escribe tu provincia.";
   }
   if (ciutat.text.length == 0) {
      output = "Por favor, escribe tu localidad.";
   }
   if (email.text.length == 0) {
      output = "Por favor, escribe tu dirección de correo electrónico.";
   } else if (email.text.indexOf ("@") == -1 || email.text.indexOf (".") == -1) {
      output = "Por favor, escribe una dirección de correo electróico válida.";
   }
   if (telf.text.length == 0) {
      output = "Por favor, escribe un teléfono de contacto.";
   }
   if (nom.text.length == 0) {
      output = "Por favor, escribe tu nombre.";
   }
   if (output.length == 0) {
      output = "Enviando...";
      enviar.nom = nom.text;
      enviar.telf = telf.text;
      enviar.ciutat = ciutat.text;
      enviar.empresa = empresa.text;
      enviar.email = email.text;
      enviar.provincia = provincia.text;
      enviar.comens = comens.text;
      enviar.sendAndLoad ("email.php",rebre,"POST");
   }
}

rebre.onLoad = function (exit) {
   if (exit) {
      output = "El formulario se ha enviado correctamente. Pronto nos pondremos en contacto contigo.";
   } else {
      //output = "Error en el envio de el formulario. Vuelve a intentarlo.";
   }
};


enviar_btn.onRelease = function () {
   enviarMail ();
};


Luego tengo un php llamado email.php en el mismo subdirectorio que el swf cargado que tiene el siguiente codigo:

Código :

<?php
   
      $nom = $HTTP_POST_VARS['nom'];
      $empresa = $HTTP_POST_VARS['empresa'];
      $telf = $HTTP_POST_VARS['telf'];
      $email = $HTTP_POST_VARS['email'];
      $ciutat = $HTTP_POST_VARS['ciutat'];
      $provincia = $HTTP_POST_VARS['provincia'];
      $comens = $HTTP_POST_VARS['comens'];


    $cos = "Nombre: ".$nom."\n"
              ."Empresa: ".$empresa."\n"
              ."Teléfono: ".$telf."\n"
              ."Email: ".$email."\n"
              ."Ciudad: ".$ciutat."\n"
              ."Provincia: ".$provincia."\n"
              ."Comentarios: ".$comens;*/


      mail ("[email protected]", "Contacto Web", "prova");
      echo "resposta=hola";
 
?>


El problema es que el mail no se envia i en el swf la comprovacion rebre.onLoad = function (exit) { devuelve false. En cambio si accedo al php desde el navegador el mail si se envia (sin los datos logicamente). ¿Que pasa? Gracias por adelantado. ;)

Por ferranpujol

177 de clabLevel



 

Mataró (Barcelona), España

opera
Citar            
MensajeEscrito el 28 Feb 2009 04:52 pm
Has probado usando una ruta absoluta en vez de: "email.php".?

Por RonAndOr

0 de clabLevel



 

Lima

safari
Citar            
MensajeEscrito el 28 Feb 2009 09:07 pm
bueno tu php esta rarito, :P $cos no se usa, pero si dices que funciona esta bien. mmm, la ruta del archivo php debe ser la misma que donde esta tu swf, si es que tu swf esta embebido en un html, entonces la ruta del email.php debe ser la misma que la del html donde esta incrustado el swf.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 28 Feb 2009 09:40 pm
Buenas, muchas gracias a todos por responder...al final descubrí el problema medio de suerte....tengo que poner el php en la ruta del archivo que carga al swf, y no en la ruta del swf.

Gracias de nuevo :)

Por ferranpujol

177 de clabLevel



 

Mataró (Barcelona), España

msie7
Citar            
MensajeEscrito el 01 Mar 2009 02:08 pm
Hola de nuevo, ahora tengo otro problemilla. En el mail que me llega, los acentos no salen correctamente, aparecen otros carácteres raros. ¿Alguien sabe porque?

Muchas gracias.

Por ferranpujol

177 de clabLevel



 

Mataró (Barcelona), España

opera
Citar            
MensajeEscrito el 02 Mar 2009 09:42 pm
Tienes que enviar las cabeceras correspondientes de la codificacion del e-mail

Código PHP :

// Para enviar correo HTML, la cabecera Content-type debe definirse
$cabeceras  = 'MIME-Version: 1.0' . "\r\n";
$cabeceras .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";


suerte.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 02 Mar 2009 09:42 pm

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 02 Mar 2009 09:44 pm
Muchas gracias LongeVie. ;)

Por ferranpujol

177 de clabLevel



 

Mataró (Barcelona), España

msie7
Citar            
MensajeEscrito el 10 Mar 2009 06:04 pm
Buenas, prové las cabeceras i los acentos aún salen mal. Por ejemplo: mataró--->matar贸
¿Puede ser que sea problema de como le pasa los datos flash a php?¿O que debo hacer?

Muchas gracias adelantadas.

Por ferranpujol

177 de clabLevel



 

Mataró (Barcelona), España

opera
Citar            
MensajeEscrito el 10 Mar 2009 06:46 pm
intenta con:

Código ActionScript :

$cabeceras .= 'Content-type: text/html; charset=UTF-8' . "\r\n"; 

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 10 Mar 2009 07:49 pm
Buenas, en realidad si que funcionan los acentos con el primer charset, pero hay que poen entidades. ¿Hay alguna forma para que no tenga que crear un script que substituya cada caràcter especial por su entidad?

Gracias

Por ferranpujol

177 de clabLevel



 

Mataró (Barcelona), España

msie7
Citar            
MensajeEscrito el 10 Mar 2009 07:59 pm
Mmm, podrias hacer dos cosas, por ejemplo dejar el encabezado con UTF-8 y usar:

Código PHP :

<?php 
mb_internal_encoding("UTF-8");//Codificacion interna a utf-8 
$cadena = mb_convert_encoding($cadena, "UTF-8");//codificacion de una cadena a utf-8 
//Esta linea de abajo haria lo mismo 
$cadena = utf8_encode($cadena);//codificacion de una cadena a utf-8 
?>


o convertirlo todo a ISO-8859-1

Código PHP :

<?php 
$cadena = mb_convert_encoding($cadena, "ISO-8859-1", "UTF-8");//codificaion de una cadena utf-8 a ISO-8859-1(Latin) 
//Esta linea de abajo haria lo mismo 
$cadena = utf8_decode($cadena);//codificaion de una cadena utf-8 a ISO-8859-1(Latin)
?>


:D podria ser.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 10 Mar 2009 08:07 pm
Excelente, ahora si funciona. Muchas Gracias ;)

Por ferranpujol

177 de clabLevel



 

Mataró (Barcelona), España

msie7

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.