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

Campos obligatorios en formulario flash "violados"

Estas en el tema de Campos obligatorios en formulario flash "violados" en el foro de Flash y Actionscript en Foros del Web. Hola amigos. Estoy un poco sorprendido, porque no sé cómo puede hacerse esto. Resulta que tengo un simple formulario flash con un simple código para ...
  #1 (permalink)  
Antiguo 17/10/2005, 03:29
Avatar de franquero  
Fecha de Ingreso: julio-2005
Mensajes: 179
Antigüedad: 12 años, 5 meses
Puntos: 1
Exclamación Campos obligatorios en formulario flash "violados"

Hola amigos. Estoy un poco sorprendido, porque no sé cómo puede hacerse esto.
Resulta que tengo un simple formulario flash con un simple código para verificar que los campos no están vacíos y que en el campo email hay una @ y un .

Código PHP:
on (release) {
    if (
nombre eq "") {
        
info "Campo \"nombre\" incompleto";
    } else if (
email eq "") {
        
info "Campo \"email\" incompleto";
    } else if (
localidad eq "") {
        
info "Campo \"localidad\" incompleto";
    } else if (
comentario eq "") {
        
info "Campo \"comentario\" incompleto";
    
            
    } else {
        
info ""
        
if (email.indexOf("@") != -&& email.indexOf(".") != -1) {
        
info "Enviando solicitud..."
        
enviar();
        
play();

    } else {
        
info "E-mail inválido";
    }
            }

Bien, pues el caso es que he recibido un formulario, en el que todos los campos ESTÁN VACÍOS !!!!!!

¿Cómo puede ser eso? ¿Cómo se puede saltar el actionscript?
A ver si los expertos tienen la respuesta.

Gracias de antemano
__________________
Es una suerte que la sociedad libre sea más productiva, porque de no haberlo sido jamás se habría tolerado.
  #2 (permalink)  
Antiguo 17/10/2005, 03:50
 
Fecha de Ingreso: septiembre-2005
Mensajes: 122
Antigüedad: 12 años, 3 meses
Puntos: 0
yo creo que esto es el codigo para flash esto no es php
  #3 (permalink)  
Antiguo 17/10/2005, 04:04
Avatar de franquero  
Fecha de Ingreso: julio-2005
Mensajes: 179
Antigüedad: 12 años, 5 meses
Puntos: 1
Éste es el código php

Código PHP:
<?php
$MailTo
="[email protected]";
$dia=date("m.d.Y");
$hora=date("H:i:s");
$contenido="
El Mensaje se Envio el  $dia a las $hora:\n\n
----------------------------------------------------------------------------\n
Nombre $nombre\n
E-mail: $email\n
Localidad: $localidad\n
Comentario: $comentario\n
----------------------------------------------------------------------------\n

"
;
mail($MailTo"$subject (de $nombre)"$contenido"From: $MailFrom");
?>
Pero se supone que si los campos no están rellenos y el email con @ y . el swf no enviará las variables al php, eso es lo que me tiene intrigado, cómo se salta el actionscript para acceder al php con el valor de las variables vacío.
__________________
Es una suerte que la sociedad libre sea más productiva, porque de no haberlo sido jamás se habría tolerado.
  #4 (permalink)  
Antiguo 17/10/2005, 04:05
 
Fecha de Ingreso: septiembre-2005
Mensajes: 122
Antigüedad: 12 años, 3 meses
Puntos: 0
esto si es el codigo para un formulario
primero
php
<?php
$MailTo="[email protected]";
$dia=date("m.d.Y");
$hora=date("H:i:s");
$contenido="
El Mensaje se Envio el $dia a las $hora:\n\n
----------------------------------------------------------------------------\n
Nombre $nombre\n
Apellido: $apellido\n
E-mail: $MailFrom\n
----------------------------------------------------------------------------\n
Subject: $subject\n
----------------------------------------------------------------------------\n
Mensaje: $mensaje\n
----------------------------------------------------------------------------\n
";
mail($MailTo, "$subject (de $nombre $apellido)", $contenido, "From: $MailFrom");
?>


y el que tienes que poner en flash en la linea de tiempo es este

stop();
function borrar() {
nombre = "";
apellido = "";
MailFrom = "";
subject = "";
mensaje = "";
}
function enviar() {
enviar = new LoadVars();
enviar.nombre = nombre;
enviar.apellido = apellido;
enviar.MailFrom = MailFrom;
enviar.subject = subject;
enviar.mensaje = mensaje;
enviar.onLoad = function(success) {
status = "Su Mensaje Fue enviado Correctamente";
borrar();
};
enviar.sendAndLoad("flaform.php", enviar, "POST");
}


en el boton de enviar pon este

on (release) {
if (MailFrom.indexOf("@") != -1 && MailFrom.indexOf(".") != -1 && nombre != "" && apellido != "" && mensaje != "") {
enviar();
} else {
status = "Llene correctamente todos los campos";
}
}


en el de borror este

on (release) {
borrar();
}
  #5 (permalink)  
Antiguo 17/10/2005, 04:25
Avatar de franquero  
Fecha de Ingreso: julio-2005
Mensajes: 179
Antigüedad: 12 años, 5 meses
Puntos: 1
Gracias por tu interés diapocharacter, pero eso ya lo tengo hecho. Quizás no me he explicado bien.
Mi código es exactamente igual al tuyo (excepto el código del botón enviar)
Hasta ahora me ha funcionado perfectamente, pero el otro día recibí un mail con todos los campos vacíos. De ahí mi preocupación, ¿cómo pueden saltarse la validación de actionscript?
De hecho yo lo he intentado y no puedo enviar el formulairo si no relleno aunque sea una letra o un espacio en cada campo y pongo el . y @ en el email.
__________________
Es una suerte que la sociedad libre sea más productiva, porque de no haberlo sido jamás se habría tolerado.
  #6 (permalink)  
Antiguo 17/10/2005, 10:24
 
Fecha de Ingreso: febrero-2005
Ubicación: Buenos Aires
Mensajes: 220
Antigüedad: 12 años, 9 meses
Puntos: 0
Exclamación

Hola amigos

Tengo el mismo script funcionando y pese a haber intentado lo que tu dices por aca, no pude hacer enviar nada sin los datos correspondientes.

Lo que si deseo consultarles ya que estamos en el mismo codigo: ¿como puedo hacer para "resetear" el script?

Que rayos estoy diciendo? pues es simple. Cuando completas los campos y envias, tenemos un "mensaje enviado exitosamente". Ahora bien, si quisiera escribir nuevamente, porque se me antoja enviar otro mas, como hago el "refresh"???

Si intendo enviar otro mensaje seguido al primero,no puedo hacer nada! Excepto presionando F5

Que podria hacer para evitar este serio problema.

Saludos!
__________________
Aprender trae dolores de cabeza...Enseñar, satisfacción :pensando:
  #7 (permalink)  
Antiguo 17/10/2005, 16:32
Avatar de Ludwingg  
Fecha de Ingreso: diciembre-2002
Ubicación: San Salvador
Mensajes: 951
Antigüedad: 15 años
Puntos: 5
pues a mi lo que se me ocurre es que alguien no paso por tu form de flash, sino que accedio directamente a la pagina php, y como ahi no hay validacion ni nada, solo envio el mensaje vacio a tu e-mail... o sea, en la barra de direcciones escribio directamente la url del archivo php.

saludos

Cita:
Iniciado por franquero
Gracias por tu interés diapocharacter, pero eso ya lo tengo hecho. Quizás no me he explicado bien.
Mi código es exactamente igual al tuyo (excepto el código del botón enviar)
Hasta ahora me ha funcionado perfectamente, pero el otro día recibí un mail con todos los campos vacíos. De ahí mi preocupación, ¿cómo pueden saltarse la validación de actionscript?
De hecho yo lo he intentado y no puedo enviar el formulairo si no relleno aunque sea una letra o un espacio en cada campo y pongo el . y @ en el email.
  #8 (permalink)  
Antiguo 18/10/2005, 03:58
Avatar de franquero  
Fecha de Ingreso: julio-2005
Mensajes: 179
Antigüedad: 12 años, 5 meses
Puntos: 1
Cita:
Iniciado por box_factor
Hola amigos

Tengo el mismo script funcionando y pese a haber intentado lo que tu dices por aca, no pude hacer enviar nada sin los datos correspondientes.

Lo que si deseo consultarles ya que estamos en el mismo codigo: ¿como puedo hacer para "resetear" el script?

Que rayos estoy diciendo? pues es simple. Cuando completas los campos y envias, tenemos un "mensaje enviado exitosamente". Ahora bien, si quisiera escribir nuevamente, porque se me antoja enviar otro mas, como hago el "refresh"???

Si intendo enviar otro mensaje seguido al primero,no puedo hacer nada! Excepto presionando F5

Que podria hacer para evitar este serio problema.

Saludos!
Box_factor, yo solucioné ese problema de la siguiente forma:

Después de enviar el mensaje hago un play(); hacia un frame 2 con un stop();
(puedes verlo en el código de mi primer post) Bien, pues en ese segundo frame coloco un botón "Nueva consulta" que borra los campos y vuelve al frame 1.
Código PHP:
on (release) {gotoAndPlay(1);
nombre=""
email=""
localidad=""
comentario=""

info=""

De esa forma se puede mandar otro formulario sin problema.
Espero que te sirva

Cita:
Iniciado por Ludwingg
pues a mi lo que se me ocurre es que alguien no paso por tu form de flash, sino que accedio directamente a la pagina php, y como ahi no hay validacion ni nada, solo envio el mensaje vacio a tu e-mail... o sea, en la barra de direcciones escribio directamente la url del archivo php.

saludos
Hola Ludwingg. No había caído en ese detalle. Ésa debe ser la única forma de enviar el formulario vacío. Pero no sé cómo puede haber conseguido la url, ya que en ningún momento aparece en el navegador.
Nunca he utilizado el Flash Decompiler, ¿se puede ver el código de action script para acceder a la url del php?

Quizás se pueda solucionarcon esto en el archivo php

Código PHP:
if ($variable ="") {
   echo 
"Error variables vacías";

__________________
Es una suerte que la sociedad libre sea más productiva, porque de no haberlo sido jamás se habría tolerado.

Última edición por franquero; 18/10/2005 a las 05:27
  #9 (permalink)  
Antiguo 18/10/2005, 10:45
Avatar de etmoreno  
Fecha de Ingreso: diciembre-2002
Ubicación: near fireplace
Mensajes: 404
Antigüedad: 15 años
Puntos: 1
Franquero, puedes poner el link al formulario.

Creo que tengo una idea de como te lo han violado, pero para estar seguro debería conocer el link.

Saludos ;)
  #10 (permalink)  
Antiguo 18/10/2005, 11:26
Avatar de Potro  
Fecha de Ingreso: abril-2001
Mensajes: 2.249
Antigüedad: 16 años, 7 meses
Puntos: 39
a ver ese codigo esta en una pagina de php normal y tu formulario en otra yo creo que el codigo de validación debe de estar en el swf en algun keyframe no en otra página distinta.
  #11 (permalink)  
Antiguo 20/10/2005, 05:01
Avatar de franquero  
Fecha de Ingreso: julio-2005
Mensajes: 179
Antigüedad: 12 años, 5 meses
Puntos: 1
Hola etmoreno, ahí está la url del formulario.

formulario

Potro, el código de validación está en un botón del swf, lo de añadir un nuevo código en el php era la única solución que se me ocurrió para cuando se ejecute el php directamente desde su url. (Que por cierto todavía no veo cómo se puede conseguir)

Saludos
__________________
Es una suerte que la sociedad libre sea más productiva, porque de no haberlo sido jamás se habría tolerado.
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 21:08.