Foros del Web » Creando para Internet » Flash y Actionscript »

Formulario Flash Y Php

Estas en el tema de Formulario Flash Y Php en el foro de Flash y Actionscript en Foros del Web. Hola amigos: Estoy realizando un sencillo formulario flash y php en mi web. He tomado el ejemplo de los recursos flash de forosdelweb y me ...
  #1 (permalink)  
Antiguo 01/02/2006, 09:02
 
Fecha de Ingreso: enero-2006
Mensajes: 38
Antigüedad: 18 años, 10 meses
Puntos: 0
Formulario Flash Y Php

Hola amigos:

Estoy realizando un sencillo formulario flash y php en mi web. He tomado el ejemplo de los recursos flash de forosdelweb y me funciona perfecto hasta que en el campo comentario inserto varias lineas de textos con retornos de carro (pulsando enter). ¿Qué le falta al código para que el problema se solucione? Creo que la carencia está en el código php, aquí os lo pongo:


<?
$auth_domain = array("chilepixel.com","chilepixel.com");
$to = "[email protected]";
$subject = "requieren información";

if (isset($HTTP_REFERER)) {
foreach ($auth_domain as $line) {
if (eregi($line,$HTTP_REFERER)) {
$check_url = 1;
continue;
}
}
}else{
$check_url = 1;
}
if ($check_url != 1) {
echo "error=this formmail is not allowed in your domain";
exit;
}


$date = getdate(time());
$date = sprintf("%s %s %s %s:%s:%s", $date["mday"],$date["month"],$date["year"],$date["hours"],$date["minutes"],$date["seconds"]);
$from = "$name<$email> ";
$header = "From:$from\n";
$header .= "Reply-To:$from\n";

$body = "El siguiente comentario ha sido enviado por: \n";
$body .= "$name el $date\n\n";
$body .= "---------------------------------------------------------------\n\n";
$body .= "<NOMBRE> $name\n\n";
$body .= "<EMPRESA> $empresa\n\n";
$body .= "<TELEFONO> $tel\n\n";
$body .= "<CIUDAD> $ciudad\n\n";
$body .= "<PAIS> $pais\n\n";
$body .= "---------------------------------------------------------------\n\n";
$body .= "$comments\n\n";
$body .= "---------------------------------------------------------------\n\n";
$body .= "<Hosting remoto> $REMOTE_HOST\n";
$body .= "<Dirección remota> $REMOTE_ADDR\n";
$body .= "<Agente usado> $HTTP_USER_AGENT\n";

$header=trim($header);
mail($to, $subject, $body, $header) or die("error=No se pudo enviar el mensaje!");
echo "&error=Su mensaje se ha enviado con éxito!!";


Soy muy novata en esto, así que quizá sea una tontería....Muchas gracias por todo ...

Cristina

Última edición por cristina_me; 01/02/2006 a las 09:08
  #2 (permalink)  
Antiguo 01/02/2006, 11:59
Usuario no validado
 
Fecha de Ingreso: noviembre-2002
Ubicación: .........
Mensajes: 147
Antigüedad: 22 años
Puntos: 0
Hola.

Lo que puede ser, es que debes hacer que el campo del comentario (en el flash) quede ademas de ser multiline que tenga activado el render de html para que respete los intros y que los saltos de linea lleguen como deben al correo...

ve que pasa con eso...

salu2
  #3 (permalink)  
Antiguo 01/02/2006, 14:24
 
Fecha de Ingreso: enero-2006
Mensajes: 38
Antigüedad: 18 años, 10 meses
Puntos: 0
Desacuerdo

Muchas gracias Bl@de por tu interés. Es de agradecer tanto compañerisomo y buen rollo...

He probado ha activar la casilla de generar texto como html (simbolito de <>) en el campo de introducción de texto multilínea de la variable comments, pero nada. Si hago eso no me funciona ni con retorno de carro ni sin él. No llega a enviar el formulario al mail.

¿Tendré que añadir algo de código al php? SOS ...soy una novata total!!!

Un saludo,

Cristina
  #4 (permalink)  
Antiguo 01/02/2006, 14:31
Avatar de -=ArgoN=-  
Fecha de Ingreso: octubre-2005
Ubicación: Barcelona, España
Mensajes: 843
Antigüedad: 19 años, 1 mes
Puntos: 1
Estas segura de que tu webhosting tiene activada la funcion mail? porque a veces se da el caso de que los del hosting desactivan esa funcion para evitar ataques de spaming...
El otro dia me paso a mi, estuve varias horas mirando a ver que pasaba y resulta que los del host habian deshabilitado la funcion en aquel instante los habria matado

Saludos,

ArgoN
  #5 (permalink)  
Antiguo 03/02/2006, 04:08
 
Fecha de Ingreso: enero-2006
Mensajes: 38
Antigüedad: 18 años, 10 meses
Puntos: 0
sólo al poner retornos de carro

Hola chicos,

Gracias por vuestras respuestas. Lo que cometa Argon de la función mail del servidor, no creo; porque el formulario funciona perfecto si en el apartado comentario pongo lineas de texto sin meter retornos de carro. Los mail con los campos rellenos me llegan sin problemas.

Lo que no me llega es cuando el texto que se mete en el campo comentario tiene retornos de carrro...la verdad es que esto me trae de cabeza porque no doy con la tecla...

Ah! Fantasma, le echaré un vistacito al enlace que comentabas, gracias.

Muchas gracias a todos

Cristina
  #6 (permalink)  
Antiguo 07/02/2006, 06:50
 
Fecha de Ingreso: enero-2006
Mensajes: 38
Antigüedad: 18 años, 10 meses
Puntos: 0
Para Blade

Hola a todos:

Finalmente Blade llevaba razón actibando la casilla de generar texto como html de el campo comments, me permite introducir retornos de carro.
El problem surge ahora cuando recibo el mail con el comentario relleno que en el apartado de comments lo recibo tal que así:

<P ALIGN=\"LEFT\"><FONT FACE=\"_sans\" SIZE=\"12\" COLOR=\"#000000\" LETTERSPACING=\"0\" KERNING=\"0\">texto introducido en cuestionario</FONT></P><P ALIGN=\"LEFT\"><FONT FACE=\"_sans\" SIZE=\"12\" COLOR=\"#000000\" LETTERSPACING=\"0\" KERNING=\"0\">dasd</FONT></P><P ALIGN=\"LEFT\"><FONT FACE=\"_sans\" SIZE=\"12\" COLOR=\"#000000\" LETTERSPACING=\"0\" KERNING=\"0\">a</FONT></P><P ALIGN=\"LEFT\"><FONT FACE=\"_sans\" SIZE=\"12\" COLOR=\"#000000\" LETTERSPACING=\"0\" KERNING=\"0\">d</FONT></P><P ALIGN=\"LEFT\"><FONT FACE=\"_sans\" SIZE=\"12\" COLOR=\"#000000\" LETTERSPACING=\"0\" KERNING=\"0\">d</FONT></P><P ALIGN=\"LEFT\"><FONT FACE=\"_sans\" SIZE=\"12\" COLOR=\"#000000\" LETTERSPACING=\"0\" KERNING=\"0\">texto introducido en cuestionario</FONT></P>


¿qué hago para que sólo reciba:

texto introducido en cuestionario
texto introducido en cuestionario?

Gracias por vuestro interés.

Un saludito

Cristina
  #7 (permalink)  
Antiguo 07/02/2006, 06:53
Avatar de -=ArgoN=-  
Fecha de Ingreso: octubre-2005
Ubicación: Barcelona, España
Mensajes: 843
Antigüedad: 19 años, 1 mes
Puntos: 1
De acuerdo

Código:
tu_campodetexto.html = true;
tu_campodetexto.htmlText = la_variable_cargada;
Prueba esto...

ArgoN
  #8 (permalink)  
Antiguo 07/02/2006, 06:57
 
Fecha de Ingreso: enero-2006
Mensajes: 38
Antigüedad: 18 años, 10 meses
Puntos: 0
pero dónde meto esto? en el flash? en la instancia del campo de introducción de texto?

Gracias Argon...eres más veloz que un rayo....

Un saludo

Cristina
  #9 (permalink)  
Antiguo 07/02/2006, 07:02
Avatar de -=ArgoN=-  
Fecha de Ingreso: octubre-2005
Ubicación: Barcelona, España
Mensajes: 843
Antigüedad: 19 años, 1 mes
Puntos: 1
jaja metelo donde tengas el codigo que hace que en tu campo de texto se cargue todo el texto ese que tienes con saltos de linia...

tu_campodetexto es la instancia del campo de texto donde aparece tu texto...



P.D: pues solo escribo con una mano porque me rompi el codo...
  #10 (permalink)  
Antiguo 07/02/2006, 08:56
 
Fecha de Ingreso: enero-2006
Mensajes: 38
Antigüedad: 18 años, 10 meses
Puntos: 0
Desacuerdo

Hola -=ArgoN=-

Estoy probando con el código que me has dado:

mensaje.html = true;
mensaje.htmlText = comments;

siendo mensaje el nombre de la instancia de mi campo de introducción de texto y comments el nombre de la variable de dicho campo.

Lo introduzco al principio del código php pero no furula. Te pongo el código php tal y como lo he escrito incluyendo tu código:

Código PHP:
<?
$auth_domain 
= array("info.com","info.com");
$to       "[email protected]";
$subject  "requieren información";

mensaje.html true;
mensaje.htmlText comments;

if (isset(
$HTTP_REFERER)) { 
    foreach (
$auth_domain as $line) {
        if (
eregi($line,$HTTP_REFERER)) {
            
$check_url 1;           
            continue;
        }
    }
}else{
    
$check_url 1;
}
if (
$check_url != 1) {
    echo 
"error=this formmail is not allowed in your domain";
    exit;
}


$date getdate(time());
$date sprintf("%s %s %s %s:%s:%s"$date["mday"],$date["month"],$date["year"],$date["hours"],$date["minutes"],$date["seconds"]);
$from "$name<$email> ";
$header =  "From:$from\n";
$header .= "Reply-To:$from\n";

$body "El siguiente comentario ha sido enviado por: \n";
$body .= "$name el $date\n\n";
$body .= "---------------------------------------------------------------\n\n";
$body .= "<NOMBRE> $name\n\n";
$body .= "<EMPRESA> $empresa\n\n";
$body .= "<TELEFONO> $tel\n\n";
$body .= "<CIUDAD> $ciudad\n\n";
$body .= "<PAIS> $pais\n\n";
$body .= "---------------------------------------------------------------\n\n";
$body .=  "$comments\n\n";  
$body .= "---------------------------------------------------------------\n\n";
           
$header=trim($header);
mail($to$subject$body$header) or die("error=No se pudo enviar el mensaje!");
echo 
"&error=Su mensaje ha sido enviado!!";
-=ArgoN=-, perdona mi ignorancia, pero de php no tengo ni idea (sólo tengo nociones básicas de asp) y el servidor de la web sólo admite php...vaya faena!! ¿Sabes por qué no me sale?

Muchas gracias por todo y que se recupere pronto tu codo

Un saludo

Cristina
  #11 (permalink)  
Antiguo 07/02/2006, 09:17
Avatar de -=ArgoN=-  
Fecha de Ingreso: octubre-2005
Ubicación: Barcelona, España
Mensajes: 843
Antigüedad: 19 años, 1 mes
Puntos: 1
Cita:
Iniciado por cristina_me
El problem surge ahora cuando recibo el mail con el comentario relleno que en el apartado de comments lo recibo tal que así:

<P ALIGN=\"LEFT\"><FONT FACE=\"_sans\" SIZE=\"12\" COLOR=\"#000000\" LETTERSPACING=\"0\" KERNING=\"0\">texto introducido en cuestionario</FONT></P><P ALIGN=\"LEFT\"><FONT FACE=\"_sans\" SIZE=\"12\" COLOR=\"#000000\" LETTERSPACING=\"0\" KERNING=\"0\">dasd</FONT></P><P ALIGN=\"LEFT\"><FONT FACE=\"_sans\" SIZE=\"12\" COLOR=\"#000000\" LETTERSPACING=\"0\" KERNING=\"0\">a</FONT></P><P ALIGN=\"LEFT\"><FONT FACE=\"_sans\" SIZE=\"12\" COLOR=\"#000000\" LETTERSPACING=\"0\" KERNING=\"0\">d</FONT></P><P ALIGN=\"LEFT\"><FONT FACE=\"_sans\" SIZE=\"12\" COLOR=\"#000000\" LETTERSPACING=\"0\" KERNING=\"0\">d</FONT></P><P ALIGN=\"LEFT\"><FONT FACE=\"_sans\" SIZE=\"12\" COLOR=\"#000000\" LETTERSPACING=\"0\" KERNING=\"0\">texto introducido en cuestionario</FONT></P>
hmmmm Me confundi... crei que en tu flash cargabas el texto en un campo de texto... pero tu te refieres al mail que has recibido en tu buzon... vaya...

La cuestion es que directamente no te deberia llegar todas esas cosas al mail...

Prueba con el php que uso yo:

Código PHP:
<?php
function quitar($mensaje)

$mensaje str_replace("<","&lt;",$mensaje); 
$mensaje str_replace(">","&gt;",$mensaje); 
$mensaje str_replace("\'","'",$mensaje); 
$mensaje str_replace('\"',"&quot;",$mensaje); 
$mensaje str_replace("\\\\","\",$mensaje); 
return $mensaje;

function comprobar_email($email){ 
    $mail_correcto = 0; 
    if ((strlen($email) >= 6) && (substr_count($email,"
@") == 1) && (substr($email,0,1) != "@") && (substr($email,strlen($email)-1,1) != "@")){ 
       if ((!strstr($email,"'")) && (!strstr($email,"\"")) && (!strstr($email,"\\")) && (!strstr($email,"\$")) && (!strstr($email," "))) { 
          if (substr_count($email,".")>= 1){ 
             $term_dom = substr(strrchr ($email, '
.),1); 
             if (
strlen($term_dom)>&& strlen($term_dom)<&& (!strstr($term_dom,"@")) ){ 
                
$antes_dom substr($email,0,strlen($email) - strlen($term_dom) - 1); 
                
$caracter_ult substr($antes_dom,strlen($antes_dom)-1,1); 
                if (
$caracter_ult != "@" && $caracter_ult != "."){ 
                   
$mail_correcto 1
                } 
             } 
          } 
       } 
    } 
    if (
$mail_correcto
       return 
1;
    else 
       return 
0;

$comp_email quitar($HTTP_POST_VARS["email"]);
$i comprobar_email($comp_email);
if (
$i != 0)
{
    
$sendTo "el email al cual quieres que se envie el email";
    
$subject $_POST["asunto"];
    
$headers "From: " $_POST["tu_nombre_de_la_WEB"];
    
$headers .= "<" $_POST["email"] . ">\r\n";
    
$headers .= "Reply-To: " $_POST["email"]; 
    
$message $_POST["cuerpo"];
    
mail($sendTo$subject$message$headers);
    echo 
"&error=Su mensaje ha sido enviado!!&";
}
else
{
echo 
"&error=El email introducido parece ser incorrecto.";
}
?>
Desde mi flash envio las variables: email (email de la persona que envia), asunto (asunto), y cuerpo (el email en si) ...

A ver si mi php te ayuda =P

Saludos cristina y gracias por el comentario

  #12 (permalink)  
Antiguo 07/02/2006, 09:54
 
Fecha de Ingreso: enero-2006
Mensajes: 38
Antigüedad: 18 años, 10 meses
Puntos: 0
Sonrisa

Mil gracias, Argon, pruebo ahora mismo a ver qué tal me va...

Un saludito

Cristina
  #13 (permalink)  
Antiguo 07/11/2006, 11:00
Avatar de iandrade  
Fecha de Ingreso: septiembre-2006
Ubicación: Xalapa, Veracruz, MÉXICO.
Mensajes: 171
Antigüedad: 18 años, 1 mes
Puntos: 6
Hola has activado la opcion

content-type=text/html

en el header de tu script PHP

para que el liente de correo lo interprete como HTML y no como TXT ?
  #14 (permalink)  
Antiguo 09/01/2007, 15:25
 
Fecha de Ingreso: junio-2006
Mensajes: 10
Antigüedad: 18 años, 5 meses
Puntos: 0
Re: Formulario Flash Y Php

Hola Chicos ! Hola Cris.......Me pasa lo mismo a mi, tengo el mismo problema. En Mensaje no me toma los enter......cdo pulso enter el txt me llega de corrido. Alguin sabe la solucion? probe lo que dijeron y nada................
Te salio a vos Cris??? si te salio please decime como lo hiciste no pdo encontrar la solucion en ningun lado. Muchas Graciassss!!
Lau
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 22:47.