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

Formulario de contacto

Estas en el tema de Formulario de contacto en el foro de Flash y Actionscript en Foros del Web. Hola a to@s: Estoy intentando hacer un formulario de contacto con as3 y php. Para mi archivo php he escrito este codigo: Código PHP: <?php ...
  #1 (permalink)  
Antiguo 24/11/2010, 11:25
 
Fecha de Ingreso: octubre-2010
Mensajes: 96
Antigüedad: 13 años, 6 meses
Puntos: 2
Formulario de contacto

Hola a to@s:

Estoy intentando hacer un formulario de contacto con as3 y php. Para mi archivo php he escrito este codigo:

Código PHP:
<?php
$nombre 
$_POST["nombre"];
$mail $_POST["mail"];

$mensaje "Nombre:        "$_POST['nombre'] . "\n";
$mensaje "Mail:        "$_POST['mail'] . "\n\n";
$mensaje "Mensaje:        "$_POST['mensaje'] . "\n\n";

$cabecera "From: $nombre <$mail> \r\n>;
$cabecera .= "
Reply-To$mail";

if(mail("
mimail@mail.com", "Formulario desde web", $mensaje, $cabecera)){
    echo "
estado Su mensaje ha sido enviado";
}
else{
    echo"
estado Su mensaje no ha podido ser enviado";
}
?>
Y en estas 3 lineas:


Código PHP:
$cabecera .= "Reply-To: $mail";

if(
mail("[email protected]""Formulario desde web"$mensaje$cabecera)){
    echo 
"estado = Su mensaje ha sido enviado"

me dice que tengo errores de sintaxis. Soy nueva en esto y no se como escribir el codigo para que no me de error. Si alguien puede decirme donde tengo el fallo... Muchas gracias por adelantado
  #2 (permalink)  
Antiguo 24/11/2010, 12:31
Avatar de Diegoazul  
Fecha de Ingreso: mayo-2007
Ubicación: { Dash Berlin }
Mensajes: 1.879
Antigüedad: 17 años
Puntos: 67
Respuesta: Formulario de contacto

Cita:
$nombre = $_POST["nombre"];
$mail = $_POST["mail"];

$mensaje = "Nombre: ". $_POST['nombre'] . "\n";
$mensaje = "Mail: ". $_POST['mail'] . "\n\n";
$mensaje = "Mensaje: ". $_POST['mensaje'] . "\n\n";

$cabecera = "From: $nombre <$mail> \r\n>";
$cabecera .= "Reply-To: $mail";

if(mail("[email protected]", "Formulario desde web", $mensaje, $cabecera)){
echo "estado = Su mensaje ha sido enviado";
}
else{
echo "estado = Su mensaje no ha podido ser enviado";
}

no cerraste comillas donde esta en rojo.
__________________
{ Flash }
  #3 (permalink)  
Antiguo 24/11/2010, 12:35
 
Fecha de Ingreso: octubre-2010
Mensajes: 96
Antigüedad: 13 años, 6 meses
Puntos: 2
Respuesta: Formulario de contacto

Muchas gracias Diego. Ese era mi error... A ver si consigo que se me envie. Muchas gracias.
  #4 (permalink)  
Antiguo 24/11/2010, 12:43
Avatar de Diegoazul  
Fecha de Ingreso: mayo-2007
Ubicación: { Dash Berlin }
Mensajes: 1.879
Antigüedad: 17 años
Puntos: 67
Respuesta: Formulario de contacto

de nada Saludos!
__________________
{ Flash }
  #5 (permalink)  
Antiguo 24/11/2010, 13:06
 
Fecha de Ingreso: octubre-2010
Mensajes: 96
Antigüedad: 13 años, 6 meses
Puntos: 2
Respuesta: Formulario de contacto

Perdona... No consigo que se me envie, crees que puede ser por el hosting ese gratuito donde lo tenia puesto?
  #6 (permalink)  
Antiguo 24/11/2010, 13:16
Avatar de Diegoazul  
Fecha de Ingreso: mayo-2007
Ubicación: { Dash Berlin }
Mensajes: 1.879
Antigüedad: 17 años
Puntos: 67
Respuesta: Formulario de contacto

Para saber si la función mail esta activada lee aqui http://www.maestrosdelweb.com/editorial/fflashphpform/ ahi te dice como Tmeister
__________________
{ Flash }
  #7 (permalink)  
Antiguo 24/11/2010, 13:22
 
Fecha de Ingreso: octubre-2010
Mensajes: 96
Antigüedad: 13 años, 6 meses
Puntos: 2
Respuesta: Formulario de contacto

Ok. Muchas gracias y perdona las molestias como siempre. Ahora mirare. Un saludo
  #8 (permalink)  
Antiguo 25/11/2010, 06:45
 
Fecha de Ingreso: octubre-2010
Mensajes: 96
Antigüedad: 13 años, 6 meses
Puntos: 2
Respuesta: Formulario de contacto

He puesto la pagina en otro hosting para probar y he conseguido que se me envie el mail pero me llega totalmente en blanco. Eso por que puede ser? Puede ser debido al as3? Ayer no me daba ningun error y ahora me sale:

TypeError: Error #2007: El valor del parámetro text debe ser distinto de null.
at flash.text::TextField/set text()
at Contacto_fla::MainTimeline/frame10()
at flash.display::MovieClip/gotoAndStop()
at Contacto_fla::MainTimeline/cargaCompleta()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()

No he variado nada y como no entiendo mucho no se a que puede ser debido este error.Puede ser por eso que llegue en blanco o sera por el php? Porque el mail si se me envia. Gracias
  #9 (permalink)  
Antiguo 25/11/2010, 12:21
Avatar de Diegoazul  
Fecha de Ingreso: mayo-2007
Ubicación: { Dash Berlin }
Mensajes: 1.879
Antigüedad: 17 años
Puntos: 67
Respuesta: Formulario de contacto

Escribe el código que usas de AS3.
__________________
{ Flash }
  #10 (permalink)  
Antiguo 25/11/2010, 13:26
 
Fecha de Ingreso: octubre-2010
Mensajes: 96
Antigüedad: 13 años, 6 meses
Puntos: 2
Respuesta: Formulario de contacto

El codigo que tenia era este:

Código:
import flash.net.URLVariables;
import flash.net.URLLoader;
import flash.net.URLRequest;

var misVariables:URLVariables = new URLVariables();
var cargador:URLLoader = new URLLoader();
var pedido:URLRequest = new URLRequest();

pedido.url = "http://www.mipagina.com/enviarMail.php";
pedido.method = URLRequestMethod.POST;
pedido.data = misVariables;
cargador.dataFormat = URLLoaderDataFormat.VARIABLES;

enviar_btn.addEventListener(MouseEvent.CLICK, enviar);
cargador.addEventListener(Event.COMPLETE, cargaCompleta);

function enviar(event:MouseEvent)
{
	if (mail_txt.text.indexOf("@") == -1 || mail_txt.text.indexOf(".") == -1)
	 {
		 status_txt.text = "Por favor, introduce un mail correcto";
	 }
	 else
	 {
		 enviarFormulario();
	 }
}
function enviarFormulario()
{
	misVariables.nombre = nombre_txt.text;
	misVariables.mail = mail_txt.text;
	misVariables.mensaje = mensaje_txt.text;
}

try
{
	cargador.load(pedido);
}
catch (error:Error)
{
	trace ("Error al enviar" +error);
}

function cargaCompleta(event:Event):void
{
	nombre_txt.text = "";
	mail_txt.text = "";
	mensaje_txt.text = "";
	
	gotoAndStop(10);
}

stop();
en el frame 1 y en el 10 tenia esto:

Código:
status_txt.text  = cargador.data.estado;
Para el php que te he puesto al principio.




Ahora he encontrado un codigo que no me devuelve ningun error, que es el siguiente pero no se si el php lo tengo que poner tal y como lo tenia.

Código:
stop();

import flash.events.*;
import flash.net.URLLoader;
import flash.net.URLLoaderDataFormat;
import flash.net.URLRequest;
// ----------------------------------------------------------------
var variables:URLVariables = new URLVariables();
// Be sure to change this URL to the PHP parse file on your site server
var varSend:URLRequest = new URLRequest("http://www.mipagina.com/enviarMail.php");
var varLoader:URLLoader = new URLLoader;
varSend.method = URLRequestMethod.POST;
varSend.data = variables;

status_txt.text = "";

enviar_btn.addEventListener(MouseEvent.CLICK, ValidateAndSend);


function ValidateAndSend(event:MouseEvent):void{
	
    //validate form fields
	if(!nombre_txt.length) {
		status_txt.text = "Por favor, escribe tu nombre.";	
	} else if(!mail_txt.length) {
		status_txt.text = "Por favor, escribe una dirección de correo electrónico";
	} else if(!validateEmail(mail_txt.text)) {
		status_txt.text = "Por favor, escribe una dirección de correo válida";
	} else if(!mensaje_txt.length) {
		status_txt.text = "Por favor, escribe un mensaje.";
	} else {
		
 status_txt.text = "Gracias " + nombre_txt.text + ", tu mensaje ha sido enviado!";
		
  		variables.nombre = nombre_txt.text;
   		variables.mail = mail_txt.text;
   		variables.mensaje = mensaje_txt.text;
   		varLoader.load(varSend);

    	gotoAndStop(2);
		
	}
}

function validateEmail(str:String):Boolean {
	var pattern:RegExp = /(\w|[_.\-])+@((\w|-)+\.)+\w{2,4}+/;
	var result:Object = pattern.exec(str);
	if(result == null) {
		return false;
	}
	return true;
}
Con este codigo no tendria sentido esto:

Código PHP:
if(mail("[email protected]""Formulario desde web"$mensaje$cabecera)){ 
    echo 
"estado = Su mensaje ha sido enviado"

else{ 
    echo
"estado = Su mensaje no ha podido ser enviado"

?> 
No? Pero el mail tengo que ponerselo de todas formas, no se si el php que tengo me vale para este ultimo codigo.
Muchas gracias

Última edición por vanessa_ob; 25/11/2010 a las 14:05
  #11 (permalink)  
Antiguo 25/11/2010, 14:11
Avatar de Diegoazul  
Fecha de Ingreso: mayo-2007
Ubicación: { Dash Berlin }
Mensajes: 1.879
Antigüedad: 17 años
Puntos: 67
Respuesta: Formulario de contacto

intenta con este codigo y con el primer php que tenias:




Cita:
var pattern:RegExp = new RegExp(/^(.+\@.+\..+)$/);
enviar_btn.buttonMode = true;
enviar_btn.addEventListener(MouseEvent.MOUSE_DOWN, enviar);




function enviar(event:MouseEvent):void
{
if (pattern.test(mail_txt.text) && nombre_txt.text != "" && mail_txt.text && mail_txt.text != "email" && nombre_txt.text != "Nombre" && mensaje_txt.text != "Mensaje")
{

envia_EMAIL();

///envia_EMAIL();
}
else
{


if (nombre_txt.text == "" || nombre_txt.text == "Nombre")
{


nombre_txt.text = "Nombre";






}

if (mensaje_txt.text == "" || mensaje_txt.text == "Mensaje")
{
mensaje_txt.text = "Mensaje";





}
if (mail_txt.text == "" || mail_txt.text == "@" || pattern.test(mail_txt.text) == false || mail_txt.text == "email")
{

mail_txt.text = "email";




}
}
}






function envia_EMAIL()
{
//


var request:URLRequest = new URLRequest("http://probapagina.freeiz.com/enviarMail.php");
var variables:URLVariables = new URLVariables( );
//
variables.nombre = String(nombre_txt.text);
variables.mail = String(mail_txt.text);
variables.mensaje = String(mensaje_txt.text);

//
request.data = variables;
request.method = URLRequestMethod.POST;
//
var cargador:URLLoader = new URLLoader();

//
cargador.dataFormat = URLLoaderDataFormat.VARIABLES;
cargador.load(request);
//;
cargador.addEventListener(Event.COMPLETE, completeHandler);
//;
function completeHandler(event:Event):void
{

//
trace(event.target.data.estado);


nombre_txt.text = "Nombre";
mail_txt.text="email"
mensaje_txt.text = "Mensaje";

}
}
__________________
{ Flash }
  #12 (permalink)  
Antiguo 25/11/2010, 16:12
 
Fecha de Ingreso: octubre-2010
Mensajes: 96
Antigüedad: 13 años, 6 meses
Puntos: 2
Respuesta: Formulario de contacto

No me hace nada... pero no se si sera por el hosting. Es que el que tenia no me funciona y no se de ninguno gratuito con php. Tu sabes de alguno? Porque mientras no tenemos el hosting nuestro queria uno gratuito para ir probando. Gracias.
  #13 (permalink)  
Antiguo 25/11/2010, 16:31
Avatar de Diegoazul  
Fecha de Ingreso: mayo-2007
Ubicación: { Dash Berlin }
Mensajes: 1.879
Antigüedad: 17 años
Puntos: 67
Respuesta: Formulario de contacto

Prueba este : http://www.zobyhost.com/hosting-gratis.php
__________________
{ Flash }
  #14 (permalink)  
Antiguo 25/11/2010, 16:42
 
Fecha de Ingreso: octubre-2010
Mensajes: 96
Antigüedad: 13 años, 6 meses
Puntos: 2
Respuesta: Formulario de contacto

Ese es el primero que puse. Recuerdas que te habia dejado la direccion para que miraras la pagina? Pero desde ahi no me envia nada
  #15 (permalink)  
Antiguo 25/11/2010, 17:35
Avatar de Diegoazul  
Fecha de Ingreso: mayo-2007
Ubicación: { Dash Berlin }
Mensajes: 1.879
Antigüedad: 17 años
Puntos: 67
Respuesta: Formulario de contacto

perdón, ve este http://www.freewebhostingarea.com/
__________________
{ Flash }
  #16 (permalink)  
Antiguo 26/11/2010, 06:52
 
Fecha de Ingreso: octubre-2010
Mensajes: 96
Antigüedad: 13 años, 6 meses
Puntos: 2
Respuesta: Formulario de contacto

Ok. Muchas gracias, luego mirare, porque creo que hasta que pasen unas horas no me dejara. O eso he entendido...
Gracias por todo
  #17 (permalink)  
Antiguo 26/03/2011, 15:15
 
Fecha de Ingreso: marzo-2011
Mensajes: 1
Antigüedad: 13 años, 1 mes
Puntos: 0
error en el if

Cita:
Iniciado por Diegoazul Ver Mensaje
no cerraste comillas donde esta en rojo.
hola tengo un proble quiero enviar informacion a un correo determinado en una pagina web pero me marca error en el php y no sep por que, le agradeseria su
ayuda primero me marcaba error en el email del if pero cree una funcion con su nombre y ya nop pero ahora me marca erro en el if en el primer parentesis .

<?php

function email()
{
$nombre = $_POST["nombre"];
$correo = $_POST["correo"];
$modelo = $_POST["modelo"];
$descripcion = "Nombre: ".$_POST['nombre'] ."\n";
$descripcion .= "correo: ". $_POST['correo']."\n";
$descripcion .= " modelo: ". $_POST['modelo']."\n\n";
$descripcion .= "descripcion: " . $_POST['descripcion']."\n\n";

$cabecera = "From: $nombre <$correo> \r\n";
$cabecera .= "Reply-To: $correo";

if(email("[email protected] ", "Formulario desde el Sitio", $descripcion, $cabecera)
{
echo "estado = Su mensaje ha sido enviado";
else{
echo "estado = Su mensaje no ha podido ser enviado";
}
}
}
?>

Etiquetas: contacto, formulario
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 17:20.