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

Registro Flash+Php y base de datos Foro

Estas en el tema de Registro Flash+Php y base de datos Foro en el foro de Flash y Actionscript en Foros del Web. Hola a todos! Un compañero y yo estamos haciendo una web en flash y hemos utilizado este sistema de registro. -ispetp.rimed.cu/pages/gesetp/sitios/tutoriales/tutoriales/macromedia/flash/ingreso%20de%20usuarios%20en%20flash.pdf (con las www al ...
  #1 (permalink)  
Antiguo 11/03/2009, 04:42
 
Fecha de Ingreso: noviembre-2007
Mensajes: 45
Antigüedad: 16 años, 5 meses
Puntos: 1
Registro Flash+Php y base de datos Foro

Hola a todos! Un compañero y yo estamos haciendo una web en flash y hemos utilizado este sistema de registro.

-ispetp.rimed.cu/pages/gesetp/sitios/tutoriales/tutoriales/macromedia/flash/ingreso%20de%20usuarios%20en%20flash.pdf (con las www al principio)

Todo nos ha funcionado correctamente. El problema nos lo encontramos de la siguiente manera:

Queremos utilizar la base de datos del foro, asi que hemos cambiado el nombre de las variables para que coincidan con la misma. Lo que nos ocurre es que al registrarnos nos dejaba repetir los nombres de usuario, no tenia en cuenta los que ya estaban registrados en el foro.

Estudiando un poco, hemos visto que la variable "username" (nick en el ejemplo) del foro sufre una "transformacion" a la variable "username_clean" de la siguiente manera:

$username_clean = utf8_clean_string($user_row['username']);

De manera que cuando el foro hace la comprobacion de si el usuario existe, lo compara con la columna "username_clean", no con el "username".

Lo que nosotros queremos es implementar este cambio en el ejemplo para que nos haga lo mismo que en el foro, y que se guarde esta variable username_clean tambien en la base de datos. Como no tenemos muchas nociones de php hemos intentado multitud de combinaciones pero nada.

A ver si alguien nos puede hechar un cable!!!

Muchas gracias de antemano!!!
  #2 (permalink)  
Antiguo 11/03/2009, 04:53
Avatar de Lynxcraft  
Fecha de Ingreso: noviembre-2007
Ubicación: yecla murcia
Mensajes: 1.346
Antigüedad: 16 años, 5 meses
Puntos: 51
Respuesta: Registro Flash+Php y base de datos Foro

http://www.forosdelweb.com/f16/php-f...-mysql-673347/
en este post hago una comparación de contraseña y usuario dentro de un bd lo puedes modificar para que simplemente compare el nick del usuario y si no coincide que te lo registre o por el contrario te diga que no se puede
__________________
Sobran las ideas cuando faltan ganas de trabajar en ellas
Lynxcraft
  #3 (permalink)  
Antiguo 11/03/2009, 05:08
 
Fecha de Ingreso: noviembre-2007
Mensajes: 45
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: Registro Flash+Php y base de datos Foro

Hola Lynxcraft,

he estado mirando tu ejemplo pero creo que no es realmente lo que buscamos, ya que el codigo que tenemos funciona correctamente. Creo que lo único que necesitamos es crear esta variable para que la compare con la que ya existe en la base de datos del foro y luego nos la guarde en la misma base.

Alguna otra idea?

Gracias!!
  #4 (permalink)  
Antiguo 11/03/2009, 05:37
Avatar de Lynxcraft  
Fecha de Ingreso: noviembre-2007
Ubicación: yecla murcia
Mensajes: 1.346
Antigüedad: 16 años, 5 meses
Puntos: 51
Respuesta: Registro Flash+Php y base de datos Foro

se puede hacer de esta forma enviar una variable con el nombre mediante post y luego compararla lo puedes hacer hasi

Código PHP:
 var envio_lv:LoadVars = new LoadVars();
  
envio_lv.nick=nick.text;
  
envio_lv.sendAndLoad("compara.php"envio_lv"POST"); 
en el php la recoges de esta manera

Código PHP:
$nick=$_POST['nick']; 

//para compara seria así 

$username_clean utf8_clean_string($user_row['username']);

$nick=utf8_clean_string($nick);

if(
$username_clean==$nick){

 echo 
'si son iguales'
}else{

echo 
'no son iguales'

__________________
Sobran las ideas cuando faltan ganas de trabajar en ellas
Lynxcraft
  #5 (permalink)  
Antiguo 11/03/2009, 05:41
Avatar de Lynxcraft  
Fecha de Ingreso: noviembre-2007
Ubicación: yecla murcia
Mensajes: 1.346
Antigüedad: 16 años, 5 meses
Puntos: 51
Respuesta: Registro Flash+Php y base de datos Foro

perdón por el doble post pero leyendo mejor lo que has puesto loq ue quieres es convertir la variable username por la de $username_clean XDXD es lo mismo

por ejemplo si recibes del flash la variable en modo post seria simplemente como esta en el ejemplo de arriba



$username_clean=utf8_clean_string($_POST['username ']);

al igual si la resibes de modo get

$username_clean=utf8_clean_string($_GET['username ']);
__________________
Sobran las ideas cuando faltan ganas de trabajar en ellas
Lynxcraft
  #6 (permalink)  
Antiguo 11/03/2009, 06:13
 
Fecha de Ingreso: noviembre-2007
Mensajes: 45
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: Registro Flash+Php y base de datos Foro

Nada, no me funciona.

Si eso te escribo aqui el codigo que tenemos en php de este sistema de registro para incorporarlo directamente ahi, ya que si cambiamos cosas de codigos nos liamos aún mas.

Archivo registrar.php

Código PHP:
?php
include('conexion.php'); //conectamos con la base de datos
$link Conectarse();
function 
quitar($mensaje//elimina símbolos indeseados
{
$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;
}
//comprobamos con esta función que la dirección de email escrita es correcta
function comprobar_email($email){
$mail_correcto 0;
//Hacemos una primera comprobación
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," "))) {
//miro si tiene caracter .
if (substr_count($email,".")>= 1){
//obtengo la terminacion del dominio
$term_dom substr(strrchr ($email'.'),1);
//compruebo que la terminación del dominio sea correcta
if (strlen($term_dom)>&& strlen($term_dom)<&& (!strstr($term_dom,"@")) ){
//compruebo que lo de antes del dominio sea correcto
$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//mail correcto
else
return 
0//mail incorrecto
}
$comp_email quitar($HTTP_POST_VARS["mailL"]);
$i comprobar_email($comp_email); //llamamos a la función
if ($i != 0//si la dirección de email es correcta...

//EN ESTE PUNTO ES DONDE PENSAMOS QUE DEBEMOS CREAR LA VARIABLE USERNAME_CLEAN, DE MANERA QUE CAMBIA LA CONSULTA SQL DEL USERNAME POR USERNAME_CLEAN

{
$sql "SELECT user_id FROM foroeinstein3_users WHERE username='".quitar($HTTP_POST_VARS["usuL"])."'";
$result mysql_query($sql);
if(
$row mysql_fetch_array($result))
{
echo 
"&estatus=ocupado&"//nick ocupado
}
else
{
//insertamos los datos en nuestra base de datos
$sql "INSERT INTO foroeinstein3_users (username, user_password, user_email, user_firstname, user_country, user_age) VALUES (";
$sql .= "'".quitar($HTTP_POST_VARS["usuL"])."'";
$sql .= ",'".quitar($HTTP_POST_VARS["passL"])."'";
$sql .= ",'".quitar($HTTP_POST_VARS["mailL"])."'";
$sql .= ",'".quitar($HTTP_POST_VARS["nombreL"])."'";
$sql .= ",'".quitar($HTTP_POST_VARS["ciudadL"])."'";
//REGISTRO E INGRESO DE USUARIOS FLASH

$sql .= ",'".quitar($HTTP_POST_VARS["edadL"])."'";
$sql .= ")";
mysql_query($sql);
echo 
"&estatus=ok&"//registro exitoso
}
mysql_free_result($result);
mysql_close();
}
else
{
echo 
"&estatus=nomail&"//mail incorrecto
}
?> 
A ver si ahora lo "rematamos" jejeje

Gracias!
  #7 (permalink)  
Antiguo 11/03/2009, 06:24
 
Fecha de Ingreso: noviembre-2007
Mensajes: 45
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: Registro Flash+Php y base de datos Foro

Ahhh aqui te pongo tb el codigo del flash por si hay que retocar algo:

Código PHP:
enviar = function () {
    if (
usu.text.length) {
        
//comprobamos que el nombre de usuario no este vacío
        
if (pass.text.length) {
            
//Comprobamos que la contraseña no este vacía
            
if (mail.text.length) {
                
//Comprobamos que la dirección de e-mail no este vacía
                //Preparamos las variables que enviaremos al php
                
form_lv = new LoadVars();
                
form_lv.usuL usu.text;
                
form_lv.passL pass.text;
                
form_lv.mailL mail.text;
                
form_lv.nombreL nombre.text;
                
form_lv.ciudadL ciudad.text;
                
form_lv.edadL edad.text;
                
proces.text "procesando datos...";
                
//Enviamos las variables a registrar.php
                
form_lv.sendAndLoad("registrar.php"form_lv"POST");
                
//escribe URL real de
                //Recibimos y manejamos las variables que vienen de registrar.php
                
form_lv.onLoad = function() {
                    if (
this.estatus == "ocupado") {
                        
proces.text "";
                        
usu.text "";
                        
gotoAndStop(20);
                        
//Alerta: Nick ocupado
                    
}
                    if (
this.estatus == "nomail") {
                        
proces.text "";
                        
mail.text "";
                        
gotoAndStop(25);
                        
//Alerta: e-mail icorrecto
                    
}
                    if (
this.estatus == "ok") {
                        
proces.text "Registrado con exito!";
                        
usuvar usu.text;
                        
mailvar mail.text;
                        
nombrevar nombre.text;
                        
ciudadvar ciudad.text;
                        
edadvar edad.text;
                        
usu.text "";
                        
mail.text "";
                        
nombre.text "";
                        
ciudad.text "";
                        
edad.text "";
                        
//gotoAndStop(130);
                        
gotoAndPlay(31);
                        
//Ingreso exitoso
                    
}
                    if (
this.estatus != "ocupado" && this.estatus != "nomail" && this.estatus != "ok") {
                        
proces.text "";
                        
gotoAndStop(30);
                        
//Alerta: problemas con el servidor
                    
}
                };
            } else {
                
//Alertas de campos vacíos
                
gotoAndStop(5);
                
//campo mail vacío
            
}
        } else {
            
gotoAndStop(10);
            
//campo contraseña vacío
        
}
    } else {
        
gotoAndStop(15);
        
//campo nombre de usuario vacío
    
}
};
enviar_btn.onRelease enviar;
stop();
usu2.text usuvar;
mail2.text mailvar;
nombre2.text nombrevar;
ciudad2.text ciudadvar;
edad2.text edadvar;

//para loguiarse
registro.onRelease = function() {
    
_parent._parent.registri.play();
    
_parent._parent.alReves();
    
_parent._parent.alReves6();
    
unloadMovieNum(100);
    
//loadMovieNum("registro.swf", 4);esto es lo de antes
    //con esta linea pongo a pantalla comun para poder registrarse
    //Stage["displayState"] = (Stage["displayState"] == "normal") ? "fullScreen" : "normal";
};
enviar = function () {
    if (
usu.text.length) {
        
//comprobamos si el campo de texto usu no esta vacio
        
if (pass.text.length) {
            
//comprobamos si el campo de texto pass no esta vacío
            //preparamos variables
            
form_lv = new LoadVars();
            
form_lv.usu usu.text;
            
form_lv.pass pass.text;
            
proces.text "procesando datos...";
            
//enviamos variables a ingresar.php
            
form_lv.sendAndLoad("ingresar.php"form_lv"POST");
            
//inserta la URL real de tu ingresar.php
            
form_lv.onLoad = function() {
                
//analizamos la variable devuelta por ingresar.php
                
if (this.estatus == "pass") {
                    
proces.text "";
                    
gotoAndStop(5);
                    
//contraseña incorrecta
                
}
                if (
this.estatus == "nousu") {
                    
proces.text "";
                    
usu.text "";
                    
pass.text "";
                    
gotoAndStop(10);
                    
// usuario no existente en la bd
                
}
                if (
this.estatus == "ok") {
                    
proces.text "Ingreso exitoso!";
                    
//direccionamos a la zona privada
                    
_parent._parent.registrouno.gotoAndStop(1);
                    
_parent._parent.registro.play();
                    
_parent._parent.registro.reg2.usuarios.text=form_lv.usu;
                    
//getURL("direccionWeb", "_self");
                    //inserta la URL real de tu privado.swf
                
}
                if (
this.estatus != "pass" && this.estatus != "nousu" && this.estatus != "ok") {
                    
proces.text "";
                    
gotoAndStop(15);
                    
//problemas con el servidor
                
}
            };
        } else {
            
gotoAndStop(25);
        }
    } else {
        
usu.text "falta nombre ";
    }
};
enviar_btn2.onRelease enviar;
stop();
usu.onSetFocus = function() {
    
usu.text "";
};
pass.onSetFocus = function() {
    
pass.text "";
};
rec_mail.onSetFocus = function() {
    
rec_mail.text "";
};
enviar = function () {
    if (
rec_mail.text.length) {
        
//Comprobamos si el campo rec_mail esta vacío
        //creamos variables
        
form_lv = new LoadVars();
        
form_lv.mail rec_mail.text;
        
//enviamos variables a pass.php
        
form_lv.sendAndLoad("pass.php"form_lv"POST");
        
//escribe URL real de pass.php
        
rec_mail.text "Enviando datos...";
        
form_lv.onLoad = function() {
            
//comprobamos variable devuelta
            
if (this.estatus == "ok") {
                
rec_mail.text "Datos enviados correctamente.";
            }
            if (
this.estatus == "pass") {
                
rec_mail.text "Email incorrecto.";
            }
            if (
this.estatus != "pass" && this.estatus != "ok") {
                
rec_mail.text "Problemas con el servidor.";
            }
        };
    } else {
        
rec_mail.text "Inserta tu email";
    }
};
mailbut.onRelease enviar;
stop(); 
A ver si solucionamos este tema y puede servir para otra gente!!
  #8 (permalink)  
Antiguo 11/03/2009, 06:47
Avatar de Lynxcraft  
Fecha de Ingreso: noviembre-2007
Ubicación: yecla murcia
Mensajes: 1.346
Antigüedad: 16 años, 5 meses
Puntos: 51
Respuesta: Registro Flash+Php y base de datos Foro

Código PHP:
//EN ESTE PUNTO ES DONDE PENSAMOS QUE DEBEMOS CREAR LA VARIABLE USERNAME_CLEAN, DE MANERA QUE CAMBIA LA CONSULTA SQL DEL USERNAME POR USERNAME_CLEAN

{
$sql "SELECT user_id FROM foroeinstein3_users WHERE username='".quitar($HTTP_POST_VARS["usuL"])."' AND username_clean='".utf8_clean_string(quitar($HTTP_POST_VARS["usuL"]))."'";
$result mysql_query($sql);
if(
$row mysql_fetch_array($result))

prueba con esto

estas utilizando el foro bbphp verdad ??
__________________
Sobran las ideas cuando faltan ganas de trabajar en ellas
Lynxcraft
  #9 (permalink)  
Antiguo 11/03/2009, 06:57
 
Fecha de Ingreso: noviembre-2007
Mensajes: 45
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: Registro Flash+Php y base de datos Foro

Lo he subido y me sigue dando error. Y si, utilizo un foro phpbb3. Hay que probar con otro sistema...
  #10 (permalink)  
Antiguo 13/03/2009, 02:31
 
Fecha de Ingreso: noviembre-2007
Mensajes: 45
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: Registro Flash+Php y base de datos Foro

No es que tenga mucha idea, pero puede ser que tenga que recuperar los codigos de php que utiliza el foro (funciones de usuario como crear uno nuevo, loguear...) para que asi funcione exactamente como el mismo? Sera cuestion d saber acoplar esas funciones en el sistema que tenemos...

a ver si se nos ocurre algo
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 03:41.