Comunidad de diseño web y desarrollo en internet online

Problema al enviar un formulario con PHP

Ir a página 1, 2  Siguiente

Foros de discusión > Flash

Citar            
MensajeEscrito el 12 Nov 2008 09:42 pm
Muy buenas a todos. Os cuento:
He hecho un formulario dentro de mi página flash, un formulario de contacto, y quiero que los datos que la gente meta, me los envíe por email a mi dirección. El formulario tiene 4 campos de texto, uno para el nombre (nombre_txt), otro para el email (email_txt), otro para el teléfono (telefono_txt) y otro para el mensaje que quieran enviar (mensaje_txt). A parte, tiene un campo de texto dinámico donde se le indica el estado del envío. Los datos que el usuario tiene que meter obligatoriamente son el nombre, el email, y el mensaje (es decir, el teléfono no es obligatorio). Luego hay un botón para enviar, y otro para borrar los datos escritos.
El código que tengo en el frame del formulario es el siguiente:

Código :

nombre_txt.tabIndex=1
email_txt.tabIndex=2
telefono_txt.tabIndex=3
mensaje_txt.tabIndex=4

enviar = function () {
if (email_txt.text.length && nombre_txt.length && mensaje_txt.length) {
if (email_txt.text.indexOf("@") != -1 && email_txt.text.indexOf(".") != -1) {
form_lv = new LoadVars();
form_lv.nombre = nombre_txt.text;
form_lv.email = email_txt.text;
form_lv.mensaje = mensaje_txt.text;
form_lv.telefono = telefono_txt.text;
form_lv.sendAndLoad("send.php", form_lv, "POST");
servidor_txt.text = "Enviando Mensaje...";
nombre_txt.text = "";
email_txt.text = "";
telefono_txt.text = "";
form_lv.onLoad = function() {
if (this.estatus == "ok") {
servidor_txt.text = "Su mensaje ha sido enviado correctamente";
nombre_txt.text = "";
email_txt.text = "";
telefono_txt.text = "";
} else {
servidor_txt.text = "Ha habido problemas con el servidor. Por favor, inténtelo nuevamente más tarde";
}
};
} else {
email_txt.text = "Correo Inválido";
}
} else {
email_txt.text = "Dato Necesario";
nombre_txt.text = "Dato Necesario";
mensaje_txt.text = "Dato Necesario";
}
};
borrar = function () {
nombre_txt.text ="";
telefono_txt.text ="";
email_txt.text ="";
mensaje_txt.text="";
servidor_txt.text ="";
};
enviar_btn.onRelease = enviar;
borrar_btn.onRelease = borrar;

Y a parte, he creado un php que se llama send.php, que contiene el siguiente código:

Código :

<? 

$nombre = $_POST['nombre'];
$mail = $_POST['mail'];
$telefono = $_POST['telefono'];

$header = 'From: ' . $mail . " \r\n";
$header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";

$mensaje = "Este mensaje fue enviado por " . $nombre . ", con teléfono " . $telefono . " \r\n";
$mensaje .= "Su e-mail es: " . $mail . " \r\n";
$mensaje .= "Mensaje: " . $_POST['mensaje'] . " \r\n";
$mensaje .= "Enviado el " . date('d/m/Y', time());

$para = '[email protected]';
$asunto = 'Nuevo mail de NAMARIE';

mail($para, $asunto, utf8_decode($mensaje), $header);

echo '&estatus=ok&';
?>


El caso es que lo he probado ya en el servidor, todo me funciona perfectamente, me ha dicho que el mensaje se ha enviado, pero luego realmente no me envía el email con los datos...
Perdón por el pegote de código, pero lo he querido poner todo para ver si alguien me lo puede revisar y decirme dónde está el error.
Gracias de antemano!!!

Por davidamigo

17 de clabLevel



 

msie7
Citar            
MensajeEscrito el 14 Nov 2008 11:02 am
Alguien?

Por davidamigo

17 de clabLevel



 

msie7
Citar            
MensajeEscrito el 14 Nov 2008 01:12 pm

Por lineagrafica

189 de clabLevel

1 tutorial

Genero:Masculino  

Diseño, Desarrollador, Marketing

firefox
Citar            
MensajeEscrito el 14 Nov 2008 05:57 pm
Gracias, lineagrafia. He estado revisando el código como loco, y como no veía el problema, llamé a donde tengo mi dominio. El problema no es de código, si no que mi dominio no acepta PHP ni ASP, únicamente HTML... Así que el caso ahora es si alguien me puede indicar un tutorial sobre cómo hacer un formulario únicamente en HTML. En mi formulario tengo 4 casillas: nombre, email, teléfono y mensaje, y a parte tengo una casilla de texto dinámico que indica si el mensaje ha ido bien o si ha habido algún problema. Y lo que quiero es que al pulsar el botón de enviar, que me envíe un correo electrónico a mi dirección con los datos introducidos por el usuario...
He estado buscando por ahí, pero todo lo que he encontrado es utilizando PHP o ASP.
Gracias de antemano una vez más.

Por davidamigo

17 de clabLevel



 

msie7
Citar            
MensajeEscrito el 14 Nov 2008 06:03 pm
Dices que no tienes php ni asp te sugiero sino es muy importante la pagina, que subas el .php en un servidor gratuito y lo llames desde tu dominio real.

Saludos.

Por DiegoAzul

376 de clabLevel



 

Mx

firefox
Citar            
MensajeEscrito el 14 Nov 2008 06:04 pm
¿Y eso cómo lo puedo hacer? ¿Qué servidores gratuitos buenos hay?
Muchas gracias por la rapidez.

Por davidamigo

17 de clabLevel



 

msie7
Citar            
MensajeEscrito el 14 Nov 2008 06:06 pm

Por DiegoAzul

376 de clabLevel



 

Mx

firefox
Citar            
MensajeEscrito el 14 Nov 2008 06:06 pm

Por lineagrafica

189 de clabLevel

1 tutorial

Genero:Masculino  

Diseño, Desarrollador, Marketing

firefox
Citar            
MensajeEscrito el 14 Nov 2008 06:10 pm
Gracias a los dos. La verdad es que a mi me interesa uno gratuito, porque ya tengo uno de pago, y no es plan de tener 2... Probaré con el de DiegoAzul.
Y ahora entonces, ¿cómo tengo que modificar el código?

Por davidamigo

17 de clabLevel



 

msie7
Citar            
MensajeEscrito el 14 Nov 2008 06:31 pm
si esta bien el codigo, solo tienes que poner la ruta nueva del .php


Código :

form_lv.sendAndLoad("http:/nuevaruta.com/send.php", form_lv, "POST");

Por DiegoAzul

376 de clabLevel



 

Mx

firefox
Citar            
MensajeEscrito el 16 Nov 2008 05:17 pm
Ya lo he hecho, pero sigue sin funcionarme... Al darle al botón enviar, me da el error de que ha habido problemas con el servidor, es decir, no me está cargando el PHP...
¿Podría alguien echarle una ojeada al código que posteé ariba para ver qué está fallando? Tened en cuenta que ya he cambiado la ruta del php por:

Código :

form_lv.sendAndLoad("http://www.namarie.net23.net/send.php", form_lv, "POST");


Gracias de antemano

Por davidamigo

17 de clabLevel



 

msie7
Citar            
MensajeEscrito el 16 Nov 2008 07:40 pm
ya lo probe y si funciona , mira pega esto en un frame nuevo de un fla nuevo:


Código :

enviar = function () {

form_lv = new LoadVars();
form_lv.nombre ="nombre";
form_lv.email = "email";
form_lv.mensaje = "mensaje";
form_lv.telefono = "telefono";
form_lv.sendAndLoad("http://www.namarie.net23.net/send.php", form_lv, "POST");


form_lv.onLoad = function() {
if (this.estatus == "ok") {
trace(this.estatus)
} else {
 trace("no")
}

}
};

enviar();


y si devuelve ok.


prueba usando con una cuenta de gmail como direccion en tu archivo php, ya que con hotmail no funciona.

Por DiegoAzul

376 de clabLevel



 

Mx

firefox
Citar            
MensajeEscrito el 16 Nov 2008 07:58 pm
Esto... ése código php siempre devolverá ok, sin importar si el correo se envió o no, porque no hay confirmación de que el correo se halla enviado correctamente. Para resolverlo puedes reemplazar las dos últimas líneas con esto:

Código PHP :

$enviado = mail($para, $asunto, utf8_decode($mensaje), $header);
if($enviado){
      echo '&estatus=ok&';
}else{
      echo '&estatus=error&';
}

Así sólo te devolverá "ok" si la función mail pudo enviar el correo (que no asegura que llegue, pero al menos que pudo enviarlo)

Por The Fricky!

Presidente

6168 de clabLevel

3 tutoriales
8 articulos

Genero:Masculino   Bastard Operators From Hell Héroes

Piccola Venezia...

firefox
Citar            
MensajeEscrito el 16 Nov 2008 09:32 pm
Muchas gracias a los dos. Pero a pesar de todo, esto me sigue haciendo cosas raras...
He cambiado lo que me habeis dicho, y al probarlo en flash va todo rodado, me envía el mail y me da el mensaje de que todo ha ido bien.
Pero cuando lo subo al servidor y lo pruebo en la red, el muy gitano no me funciona... Me sale el mesaje de error y no me envía nada...

Por davidamigo

17 de clabLevel



 

msie7
Citar            
MensajeEscrito el 17 Nov 2008 04:07 am

davidamigo escribió:

...Al darle al botón enviar, me da el error de que ha habido problemas con el servidor, es decir, no me está cargando el PHP...

Eso es otro asunto, si el servidor no soporta php no hay nada que hacer. Si es un servidor gratuito. Busca cambiar a uno que sí lo soporte. Acá mismo en clab hay uno o dos posts que tienen una serie de servidrores gratuitos, dale un poco al buscador.

Por The Fricky!

Presidente

6168 de clabLevel

3 tutoriales
8 articulos

Genero:Masculino   Bastard Operators From Hell Héroes

Piccola Venezia...

firefox
Citar            
MensajeEscrito el 17 Nov 2008 09:26 am
El php lo tengo subido en www.000webhost.com, que es el servidor que me recomendó DiegoAzul y que sí que soporta php... De echo, ya te digo que probándolo desde el programa todo me va de maravilla...
De todas formas, aunque mi servidor no soporte php (como es el caso de Arsys, donde tengo la página principal), si a la hora de rellenar y enviar el formulario yo le hago un enlace externo a donde tengo subido el php (y que sí que lo soporta), no debería darme problemas, ¿no?

Por davidamigo

17 de clabLevel



 

msie7
Citar            
MensajeEscrito el 18 Nov 2008 05:08 pm
¿Alguien sabe qué puede ser?

Por davidamigo

17 de clabLevel



 

msie7
Citar            
MensajeEscrito el 19 Nov 2008 09:22 pm
cambiate de servidor gratuito por alguna razon envia mas informacion, envia "ok" pero aparte envia mas cosas, cambiate a esta http://www.100webspace.com/ ahi si funciona el archivo.

Por DiegoAzul

376 de clabLevel



 

Mx

firefox
Citar            
MensajeEscrito el 20 Nov 2008 10:19 pm
O no entiendo yo cómo funciona esta página, o me sigue dando el mismo problema, pero esta vez, al probar el programa en mi pc me dice que ha ido bien, pero no me envía el correo. Y al probarlo en el servidor, me sigue dando problemas...
He creado un subdominio, porque los dominios son de pago, y he subido mi archivo ahí. Y luego en mi flash, he cambiado la ruta para esta nueva. Pero me sigue dando el mismo problema...

Por davidamigo

17 de clabLevel



 

msie7
Citar            
MensajeEscrito el 21 Nov 2008 12:39 am
registrate en host que te puse en mi ultimo mensaje ya lo probe ahi si funciona.

Por DiegoAzul

376 de clabLevel



 

Mx

firefox
Citar            
MensajeEscrito el 21 Nov 2008 07:16 pm
mira descarga firefox y deja de usar internet explorer , instala firefox de aqui http://www.mozilla-europe.org/es/firefox/
despues ve aqui instalas este ftp http://fireftp.mozdev.org/ , y en el correo (el correo que te mando 100webspace )que te mandaron tú clave y nombre de usuario hay una parte que te dan los datos del ftp, en el correo esta asi

tu correo escribió:


*** File Upload Details ***

FTP Hostname: ftp.direciondelftp
FTP Username: a72323
FTP Passsword: tuclave


cuando lo instales el ftp abres firefox y en la barra de menu en herramientas abres el ftp.

despues creas una cuenta nueva en el ftp y metes esos datos que te dieron del correo.

y asi ya puedes subir tus archivos.

si tienes más problemas vienes y preguntas.

Por DiegoAzul

376 de clabLevel



 

Mx

firefox
Citar            
MensajeEscrito el 25 Nov 2008 04:40 pm
Sigue sin funcionar... He puesto todos los datos, como había borrado el mail que me habían mandado, les he escrito, y me han enviado un mail dándome los datos. En la casilla de host puse namarie.100webspace.net, y luego puse el usuario y la contraseña que utilizo para entrar la página, pero me da un error: "Unable to make a connection. Please try again."

Por davidamigo

17 de clabLevel



 

msie7
Citar            
MensajeEscrito el 26 Nov 2008 07:40 pm

Por davidamigo

17 de clabLevel



 

msie7
Citar            
MensajeEscrito el 26 Nov 2008 10:07 pm
bueno si la pusiste asi como la estas escribiendo aqui esta mal, ya que le pones comas ( , ) y no puntos escribe esto:


http://namarie.100webspace.net/send.php

Por DiegoAzul

376 de clabLevel



 

Mx

firefox
Citar            
MensajeEscrito el 26 Nov 2008 11:10 pm
No, perdona, eso fue fallo mío... La ruta que tengo escrita es:
http://namarie.100webspace.net/send.php
Lo de las comas fue error mio al escribir...

Les he escrito a los de 100webspace y me han contestado en 2 mails. Esto es lo que me ponen:

"Hello,

Please also note that you are currently using our Free hosting plan, which does not allow you to send emails (SMTP is disabled). Any scripts that send emails will not work as either. Our paid hosting plans do not have this restriction. You can upgrade your web hosting plan from the "Change plan" section on your control panel, you will find the link on the left "Upgrades" menu.
Another major requirement in order to be able to use the email features that we offer is you to host or to register a domain name in your account with us. You will not be able to create an email account using a free subdomain.

Upgrading to a paid hosting plan would also remove the 500KB file size limit, which the Free plan has, so you will be able to upload larger files.

If you have any further questions or problems, please do not hesitate to contact us!

Best Regards,
Miles"

Y el otro es:

"Hello,

Thank you for contacting our Technical Support Department.

I have tested the provided URL:

http://namarie.100webspace.net/send.php

and the message that I have got was:

&estatus=ok&

Please note that this is not a server side error message and we will not be able to assist you if this is not the desired message that you wish to get from the script.

Best Regards,
Miles"

No entiendo nada... Primero me dicen que en mi dominio no puedo utilizar la función mail, en el segundo me dicen que lo han probado y todo va bien, y además, tú me habías dicho que también lo habías probado y que funcionaba, ¿no?
Pues ahora sí que estoy echo un lío, y esto cada vez es más urgente...

Por davidamigo

17 de clabLevel



 

msie7
Citar            
MensajeEscrito el 27 Nov 2008 12:37 am
si, yo ya probe tu codigo en el mismo servidor y me funciona bien llega el correo y tambien me devuelve "ok", sube tus archivos que usas para checar pór que no te funciona.

Por DiegoAzul

376 de clabLevel



 

Mx

firefox
Citar            
MensajeEscrito el 27 Nov 2008 11:50 am
No sé cómo subir el archivo, así que te pongo directamente el código.
Primero el del .fla:

Código :

//Ponemos un tabIndex para organizar el orden de los campos al darle a la tabulación
nombre_txt.tabIndex=1
email_txt.tabIndex=2
telefono_txt.tabIndex=3
mensaje_txt.tabIndex=4

//Creamos la función enviar
enviar = function () {
   //Ponemos la condición de que los campos obligatorios no estén vacíos
   if (email_txt.text.length && nombre_txt.length && mensaje_txt.length) {
      //Ponemos la condición de que el email esté bien escrito
      if (email_txt.text.indexOf("@") != -1 && email_txt.text.indexOf(".") != -1) {
         //Creamos la variable para rellenar el formulario
         form_lv = new LoadVars();
         form_lv.nombre =nombre_txt.text;
         form_lv.email = email_txt.text;
         form_lv.mensaje = mensaje_txt.text;
         form_lv.telefono = telefono_txt.text;
         //Cargamos y rellenamos el formulario
         form_lv.sendAndLoad("http://namarie.100webspace.net/send.php", form_lv, "POST");
         servidor_txt.text = "Enviando mensaje...";
         nombre_txt.text = "";
         email_txt.text = "";
         telefono_txt.text = "";
         //Cargamos el formulario para ver el estatus
         form_lv.onLoad = function() {
            //Si el estatus está bien
            if (this.estatus == "ok") {
               trace(this.estatus)
               servidor_txt.text = "Su mensaje ha sido enviado correctamente";
               nombre_txt.text = "";
               email_txt.text = "";
               telefono_txt.text = "";
            } 
            //Si el estatus no está bien
            else {
               trace(this.estatus)
               servidor_txt.text = "Ha habido problemas con el servidor. Por favor, inténtelo más tarde";
            }
         //Cerramos el formulario
         }
      }
      //Si el email no está bien escrito
      else {
         email_txt.text = "Correo no válido";
      //Cerramos la comprobación de si el email está bien escrito
      }
   //Cerramos el formulario
   }
   //Mensaje si los campos están vacíos
   else {
      email_txt.text = "Dato necesario";
      nombre_txt.text = "Dato necesario";
      mensaje_txt.text = "Dato necesario";
   }
//Cerramos la función enviar
};

//Creamos la función borrar
borrar = function () {
nombre_txt.text ="";
telefono_txt.text ="";
email_txt.text ="";
mensaje_txt.text="";
servidor_txt.text ="";
};
enviar_btn.onRelease = enviar;
borrar_btn.onRelease = borrar;


Y ahora el del php:

Código :

<?php

$nombre = $_POST['nombre'];
$email = $_POST['email'];
$telefono = $_POST['telefono'];

$header = 'From: ' . $email . " \r\n";
$header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";

$mensaje = "Este mensaje ha sido enviado por " . $nombre . ", con telefono " . $telefono . " \r\n";
$mensaje .= "Su e-mail es: " . $email . " \r\n";
$mensaje .= "Mensaje: " . $_POST['mensaje'] . " \r\n";
$mensaje .= "Enviado el " . date('d/m/Y', time());

$para = '[email protected]';
$asunto = 'Nuevo email desde NAMARIE';

$enviado = mail($para, $asunto, utf8_decode($mensaje), $header); 
if($enviado){
echo '&estatus=ok&'; }
else{
echo '&estatus=error&'; 
}
?>


Gracias por todo, DiegoAzul.

Por davidamigo

17 de clabLevel



 

msie7
Citar            
MensajeEscrito el 27 Nov 2008 11:59 pm
Mira estuve checando y el problema si es de los servidores , el primero que te di , si manda correo pero como te decia aparte del "ok" te manda mas datos y por eso no cumple ese "if", el segundo esta desactivado la funcion mail, bueno entonces lo que tendrias que hacer es algo muy agobiante pero si funciona (otro servidor :zombie: ), mira por privado te mando los datos de una cuenta que hice en trypod de hecho ya subi tu php checa:


http://usuarios.lycos.es/david222008/enviar.php

bueno ahora el "formulario.swf" tambien lo debes de tener ahi osea tendrias en ese servidor dos archivos el php y el swf, entonces ahora solo en tu dominio sube el archivo html y le das la ruta de tu formulario.swf como aqui en azul.


index escribió:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>negro</title>
<script language="javascript">AC_FL_RunContent = 0;</script>
<script src="AC_RunActiveContent.js" language="javascript"></script>

<style>
<!--
html, body{
height:100%;
width:100%;
margin:0;
}
//-->
</style>

</head>
<body bgcolor="#000000">
<!--URL utilizadas en la película-->
<!--Texto utilizado en la película-->


<!-- saved from url=(0013)about:internet -->
<script language="javascript">
if (AC_FL_RunContent == 0) {
alert("Esta página requiere el archivo AC_RunActiveContent.js.");
} else {
AC_FL_RunContent(
'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0',
'width', '100%',
'height', '100%',
'src', 'http://usuarios.lycos.es/david222008/formulario',
'quality', 'high',
'pluginspage', 'http://www.macromedia.com/go/getflashplayer',
'align', 'middle',
'play', 'true',
'loop', 'true',
'scale', 'showall',
'wmode', 'window',
'devicefont', 'false',
'id', 'negro',
'bgcolor', '#000000',
'name', 'negro',
'menu', 'true',
'allowFullScreen', 'true',
'allowScriptAccess','sameDomain',
'movie', 'http://usuarios.lycos.es/david222008/formulario',
'salign', ''
); //end AC code
}
</script>
<noscript>
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="100%" height="100%" id="negro" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="allowFullScreen" value="false" />
<param name="movie" value="http://usuarios.lycos.es/david222008/formulario.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#000000" />
<embed src="http://usuarios.lycos.es/david222008/formulario.swf" quality="high" bgcolor="#000000" width="100%" height="100%" name="negro" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
</noscript>
</body>
</html>



en conclusion en el servidor de tripod trabajara tus archivos para que funcione tu formulario (php , swf), y en tu dominio solo jalas esos dos (realmente solo jalas el swf).


IMPORTANTE: (USA GMAIL, NO HOTMAIL , EN HOTMAIL NO TE LLEGARAN CORREOS)

Por DiegoAzul

376 de clabLevel



 

Mx

firefox
Citar            
MensajeEscrito el 28 Nov 2008 11:18 am
Pues no te lo vas a creer, pero sigue sin funcionar... Es más, me vuelve a hacer lo mismo que al principio, es decir, desde mi PC sí funciona todo correctamente, y me envía el mail. Pero desde internet, ya me da error.
He dejado los mismos datos en la cuenta que me creaste por si quieres entrar y ver lo que he subido. En Lycos tengo el index.swf con el que genero mi html (es decir, el swf de mi página web), y el archivo send.php. Y en mi dominio original he subido el index.html, y he modificado las dos rutas que me dijiste. Eso funciona, porque de echo, la página la carga bien, sin problemas. Pero a la hora de enviar el mail, nuevamente me da el error, y no me envía el mail...
El caso es que a mi sí que me llegaron 2 mails de prueba a mi correo de hotmail, que supongo que serían de cuando tú estuviste haciendo las pruebas, pero ahora ya no me llega nada. He probado con hotmail, con gmail, y con el correo que me dan en el dominio original, y no funciona con ninguno de ellos...

Por davidamigo

17 de clabLevel



 

msie7
Citar            
MensajeEscrito el 28 Nov 2008 05:51 pm
No, mira que si funciona http://www.informaticaunam.com.mx/paneo/david.html el archivo php que puse en tripod es enviar.php y formulario.swf y luego lo subi el html a mi dominio principal que esta en otro servidor y si funciona, checa el php enviar.php y ve como uso gmail haz todo en gmail.

no uses internet explorer eso da mala suerte al programador :latigo:

Por DiegoAzul

376 de clabLevel



 

Mx

firefox
Ir a página 1, 2  Siguiente
Foros de discusión > Flash

 

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