Comunidad PHPeros

Lenguajes => Flash y ActionScript => Mensaje iniciado por: RamFu en 05 de Diciembre de 2007, 01:06:06 am

Título: [TUT] Primeras conexiónes entre Flash & PHP (Login de Usuarios) [TUT]
Publicado por: RamFu en 05 de Diciembre de 2007, 01:06:06 am
Buenas phper@ ;)
Hoy les traigo algo nuevo, no es simple ni tampoco complicado. Si de verdad te interesa flash y estás dispuesto a realizar trabajos con él, te va a interesar este tutorial. Vamos a crear un pequeño sistema de usuarios en este post, y en otro vamos a ampliarlo, a cargar mas variables.

Antes de comenzar...

Bien, lo primero, es plantearse un esquema parecido a este:

FLASH: MANDA UNA CONSULTA A PHP.
PHP: RECOJE LA CONSULTA REALIZADA POR FLASH, Y MANDA UNA RESPUESTA.
FLASH: MUESTRA LA RESPUESTA.

Nos ayudará en la realización del código fuente. Ahora, empecemos a trabajar  ;)

Vamos a ir a nuestro escritorio y vamos a crear una carpeta donde vamos a almacenar todos los documentos de este tutorial; Por ejemplo la llamaremos: Registro.
Dentro de registro vamos a crear una nueva carpeta que se llame: PHP. Aqui vamos a introducir todos los documentos PHP que necesitemos.

Una vez echo esto, vamos a abrir un nuevo documento de texto (Bloc de Notas o Notepad) y vamos a plantearnos la estructura de nuestra tabla. Vamos a llamarla: 'usuarios' Nos queda una cosa así:
Código: [Seleccionar]
CREATE TABLE usuarios (
id bigint(7) NOT NULL auto_increment,
nick char(100) NOT NULL,
password char(100) NOT NULL,
KEY id (id))
Creo que por el momento bastará con esto.
Lo guardamos con la extensión .sql (por ejemplo db.sql) en la carpeta que previamente hemos creado.

Registro

Ahora, nos vamos a Flash; Abres flash y creas un nuevo documento. Será nuestro archivo de registro. Sólo va a tener 2 campos y un espacio para el botón.

Mi tamaño del lienzo es de 300x200. Lo podemos decorar como queramos, yo lo dejo simple, dos campos de texto con lo que es cada uno arriba, y un botón enviar. Todo esto ocurre en el fotograma 1. Bien, vemos dos campos de texto. Són del tipo: "Introducción de texto" y tienen la opción de borde activada. Al campo del usuario de nick lo llamaremos "user" y al campo del usuario de la password: "pass". Al campo pass, cuando lo seleccinais, hay una opcion en  propiedades que que sale una A enmarcada, esta abajo del todo. Y os pondrá "Línea Única" Si abrís eld esplegable, el último valor es "Contraseña" Lo selecciáis. Con esto hacemos que cuando el user escriba la pass, le salga el típico * en vez de su password. Al botón le daremos el nombre "but".
Ah! se me olvidaba! También creen un campo de texto Dinámico y lo llaman respuesta. Es donde el usuario va a recibir la respuesta del servidor como: Contraseña incorecta, usuario no existe en la bd, etc.

Bien, ahora dejamos la parte física y nos metemos en el código. Al fotograma 1 le damos el siguiente código:
Código: [Seleccionar]
stop();
enviar = function () {
if (user.text.length) {
if (pass.text.length) {
// Que enviamos al PHP?
form_lv = new LoadVars();
form_lv.usuL = user.text;
form_lv.passL = pass.text;
respuesta.text = "Conectando...";
// Hacemos un sendAndLoad a registrar.php
form_lv.sendAndLoad("http://www.tuweb.com/registro/php/registro.php", form_lv, "POST");
// Una vez recibida la información, damos respuestas:
form_lv.onLoad = function() {
if (this.estatus == "ko")
{
respuesta.text = "Nombre Ocupado";
user.text = "";
}
if (this.estatus == "ok") {
proces.text = "Registrado con exito!";
}
if (this.estatus != "ko" && this.estatus!= "ok")
{
respuesta.text = "Error de conexión"
} //Hemos definido alguna URL mal (aqui no tendríamos que llegar)
    }
  } 
}
else
{
  respuesta.text = "Password Vacía";
} //Contraseña: 0
}
{
  respuesta.text = "Usuario Vacío"
}//User: 0
but.onRelease = enviar;
Ahora que tenemos el Registro en Flash, nos queda la parte PHP del registro. Es muy simple sólo tenemos que fijarnos en las variables y los nombres de las funciones que hemos puesto en el flash, y crear un documento en PHP. Como bien hemos dicho en el Código AS, hemos llamado al archivo registro.php así que creamos un documento nuevo en PHP que se llame registro.php Haremos algo así:
Código: [Seleccionar]
<?php 
include(&#39;conectar.php&#39;); // Conectar.PHP inprescindible!!
$link Conectarse();
function 
quitar($mensaje// Elimina algunos carácteres indeseados en el registro (Estan en HTML).

$mensaje str_replace("<","&lt;",$mensaje); 
$mensaje str_replace(">","&gt;",$mensaje); 
$mensaje str_replace("\&#39;","&#38;#39;",$mensaje); 
$mensaje str_replace(&#39;\"&#39;,"&quot;",$mensaje); 
$mensaje str_replace("\\\\","&#38;#92;",$mensaje); 
return 
$mensaje
}
if(
$row mysql_fetch_array($result)) 

echo 
"&estatus=ko&"// El nick ya esta en uso!

else
{
$sql "INSERT INTO usuarios (nick, password) VALUES ("
$sql .= "&#39;".quitar($HTTP_POST_VARS["usuL"])."&#39;"
$sql .= ",&#39;".quitar($HTTP_POST_VARS["passL"])."&#39;"
$sql .= ")"
mysql_query($sql); 
echo 
"&estatus=ok&"// Regisro OK
}
mysql_free_result($result); 
mysql_close(); 
}
?>

Vale! Ya tenemos un registro echo :D Ahora viene la parte que quizás sea un poco mas complicada, pero ya veréis como la sacamos ;)

Login

Guardamos el Archivo FLA del registro como reg.fla ya que despues tocaremos el código para modificar la URL del PHP. Bien una vez guardado creamos otro documento de flash, será la pantalla de login. Lo mismo que en el anterior; 3 campos (user, pass y respuesta) y un botón (but) Aqui crearemos un nuevo fotograma vacio que será el lugar donde llevaremos a los usuarios logueados ;)
Vamos con el primer fotograma;
La estructura nombrada anteriormente. La montáis. Bien, ahora comprobamos los datos; el campo para escribir el nick tiene el nombre 'user' el de la password 'pass' el que nos da respuesta, 'respuesta' y el botón se llama 'but'

Bien, vamos con el código AS;
Código: [Seleccionar]
stop();
enviar = function () {
if (user.text.length) {
if (pass.text.length) {
// Que enviamos al PHP?
form_lv = new LoadVars();
form_lv.usu = user.text;
form_lv.pass = pass.text;
respuesta.text = "Conectando...";
form_lv.sendAndLoad("http://www.tuweb.com/registro/php/entrar.php", form_lv, "POST");
form_lv.onLoad = function()
{
if (this.estatus == "pass")
{
respuesta.text = "Contraseña Incorrecta!";
}
if (this.estatus == "ko") {
respuesta.text = "El usuario no existe!";
usu.text = "";
pass.text = "";
}
if (this.estatus == "ok") {
respuesta.text = "Conectado!";
gotoAndStop(2);
}
if (this.estatus != "pass" && this.estatus!= "ko" && this.estatus!= "ok")
{
respuesta.text = "Problemas de conexión";
}// Aqui no deberiamos llegar!
};
}
else
{
respuesta.text = "Contraseña Incorrecta";
}
}
else
{
respuesta.text = "Insertar nombre de usuario";
}
};
but.onRelease = enviar;
Lo mismo que en el registrar, miramos el Flash y nos fabricamos un PHP como éste (entrar.php):
Código: [Seleccionar]
<?php 

include(&#39;conectar.php&#39;); // Conectar.PHP Inprescindible!!!!
$link Conectarse();  

if(isset(
$_POST["pass"]) && isset($_POST["user"]))

$nickN $_POST["user"];; 
$passN $_POST["pass"];; 
$result mysql_query("SELECT password FROM usuarios WHERE nick=&#39;$nickN&#39;"); // Consultamos la BD
if($row mysql_fetch_array($result)) 

if(
$row["password"] == $passN// Coincide el user con la contraseña?

echo 
"&estatus=ok&"// Siii!!! :D

else 
{
echo 
"&estatus=pass&"// No.... :(

}
else 

echo 
"&estatus=ko&"// El usuario no se encuentra en la BD xD

mysql_free_result($result); 

mysql_close(); 
?>

Bueno, ahora en el fotograma 2, vamos a crear una pequeña nterface para nuestro usuario. Vamos a crear un texto que diga: "Hola, "y otro texto a continuación con el nombre de 'nick'. En acciones nos vamos y ponemos:
Código: [Seleccionar]
nick.text = _root.user.text
Ahora ya es cuestión tuya decorarlo como quieras, crear mas variables, etc. Un saludo gente espero que os sirva!! Aqui les dejo elr esultado final ;) Pero estaría bien que lo intenten hacer, asi seguroque aprenden mas.

QUE MAS ME FALTA?
El conectar.php se lo dejo aqui:
Código: [Seleccionar]
<?
function Conectarse()
{
   $db_host="tu_host";
   $db_nombre="nombre_base_de_datos";
   $db_user="nombre_de_usuario_de_la_base_de_datos";
   $db_pass="contraseña_del_usuario_de_la_bd";
   // Respuestas
   $link=mysql_connect($db_host, $db_user, $db_pass) or die ("Error conectando a la base de datos!");
   // Seleccionamos la base de datos que nos interesa!
   mysql_select_db($db_nombre ,$link) or die("Error seleccionando la base de datos.");
   return $link;
}
?>

Recuerden subir los PHP's y editar las rutas de los archvos en cada FLA. Depsués creen el SWF (CONTROL -> PROBAR PELÍCULA) y suban los SWF. Dudas, etc. Posteen aqui ;)

Saludos, RamFu :P

http://info-jc.com/files/Registro.rar
Título: Re: [TUT] Primeras conexiónes entre Flash & PHP (Login de Usuarios) [TUT]
Publicado por: naveda en 05 de Diciembre de 2007, 14:21:48 pm
RamFu eres un crack! jejejeje KARMA +
Estupendo tutorial, ya hacia falta algo así para meternos mas en el tema de la interaccion Flash-PHP ;)

Muchas gracias!!
Título: Re: [TUT] Primeras conexiónes entre Flash & PHP (Login de Usuarios) [TUT]
Publicado por: RamFu en 05 de Diciembre de 2007, 15:06:08 pm
Gracias naveda :D Seguiré posteando tutoriales sobre Flash y PHP a ver  qué tal ;) Gracias por el karma!
Título: Re: [TUT] Primeras conexiónes entre Flash & PHP (Login de Usuarios) [TUT]
Publicado por: G2K en 06 de Diciembre de 2007, 00:32:20 am
Muchisimas gracias, sigue así crack ;)

Te has ganado un karma pero bien ganado, como te lo curras tio ;)
Título: Re: [TUT] Primeras conexiónes entre Flash & PHP (Login de Usuarios) [TUT]
Publicado por: RamFu en 06 de Diciembre de 2007, 15:46:08 pm
Gracias G2K!
Título: Re: [TUT] Primeras conexiónes entre Flash & PHP (Login de Usuarios) [TUT]
Publicado por: Nitrogeon-LastZone en 21 de Marzo de 2008, 18:09:51 pm
Wow, eso se hace con Flash¿?  :o
Pense que se hacia con C/C++ o VisualBasic

Buen aporte
Título: Re: [TUT] Primeras conexiónes entre Flash & PHP (Login de Usuarios) [TUT]
Publicado por: leomllin en 15 de Mayo de 2008, 17:29:31 pm
Hola, lei tu tutorial y esta muy completo, descargue los archivos, segui las instrucciones y probe en local... me saco problemas de conexion

lo probe en un servidor y me siguen los problemas

me pueden ayudar por favor?? estoy DESESPERADO

hasta pronto
Título: Re: [TUT] Primeras conexiónes entre Flash & PHP (Login de Usuarios) [TUT]
Publicado por: RamFu en 17 de Mayo de 2008, 17:31:53 pm
Problemas de conexón? Revisa todos los datos!!!
Título: Re: [TUT] Primeras conexiónes entre Flash & PHP (Login de Usuarios) [TUT]
Publicado por: x.mara.x en 30 de Mayo de 2008, 23:46:13 pm
primer tutorial de flash que entiendo al 80% xDDDD graciass +karma

pregunta

Citar
if (this.estatus == "ok") {
proces.text = "Registrado con exito!";   
}

cual es el proces?
Título: Re: [TUT] Primeras conexiónes entre Flash & PHP (Login de Usuarios) [TUT]
Publicado por: Dacan en 31 de Mayo de 2008, 00:38:51 am
porque usas:

$HTTP_POST_VARS

en ves de

$_POST

Saludos, Dacan  ;D
Título: Re: [TUT] Primeras conexiónes entre Flash & PHP (Login de Usuarios) [TUT]
Publicado por: x.mara.x en 31 de Mayo de 2008, 15:49:31 pm
amss no entendi xDD
tampoco entiendo el registro.php porque ai un ultimo } :S me dice unexpected

el registro no me funca para nada :S cuando le doy a el boton para registrarme no hace nada luego en registrar.php me sale todo mal y no se porque hay un extra } y no se de donde saco la variable $result estoy toda liadaaaa ayudaaaaaaa
Título: Re: [TUT] Primeras conexiónes entre Flash & PHP (Login de Usuarios) [TUT]
Publicado por: RamFu en 01 de Junio de 2008, 11:58:53 am
A ver, registro.php bueno:
Código: [Seleccionar]
<?php 
include(&#39;conectar.php&#39;); // Conectar.PHP inprescindible!!
$link Conectarse();
function 
quitar($mensaje// Elimina algunos carácteres indeseados en el registro (Estan en HTML).

$mensaje str_replace("<","&lt;",$mensaje); 
$mensaje str_replace(">","&gt;",$mensaje); 
$mensaje str_replace("\&#39;","&#38;#39;",$mensaje); 
$mensaje str_replace(&#39;\"&#39;,"&quot;",$mensaje); 
$mensaje str_replace("\\\\","&#38;#92;",$mensaje); 
return 
$mensaje
}
if(
$row mysql_fetch_array($result)) 

echo 
"&estatus=ko&"// El nick ya esta en uso!

else
{
$sql "INSERT INTO usuarios (nick, password) VALUES ("
$sql .= "&#39;".quitar($HTTP_POST_VARS["usuL"])."&#39;"
$sql .= ",&#39;".quitar($HTTP_POST_VARS["passL"])."&#39;"
$sql .= ")"
mysql_query($sql); 
echo 
"&estatus=ok&"// Regisro OK
}
mysql_free_result($result); 
mysql_close(); 
?>


Lo del boton, se mira en el code AS:

Código: [Seleccionar]
but.onRelease = enviar;
Asegurate que el boton se llama "but", y no esta enningun movieclip, es decir en la escena 1.

Un saludo!
Título: Re: [TUT] Primeras conexiónes entre Flash & PHP (Login de Usuarios) [TUT]
Publicado por: chiko en 13 de Junio de 2008, 01:29:51 am
hola a todos espero que me puedan ayudar en este tema.

tengo todo ok  los usuario se muestran en la base de datos, pero no me muestra el user en el flash aparece "HOLA, undefined"
este es el codigo del flash;

Código: [Seleccionar]
stop();
usuario.text = _root.user.text;
obviamente el campo usuario existe como texto dinamico.

espero su ayuda saludos.
Título: Re: [TUT] Primeras conexiónes entre Flash & PHP (Login de Usuarios) [TUT]
Publicado por: Nanshan en 27 de Junio de 2008, 00:07:10 am
RamFu, lo he intentado, pero hay un fallo o esque yo he hecho algo mal, lo hize primero con el mio propio, y despues con el tuyo, y me da el siguiente error en el registro.php:

Parse error: syntax error, unexpected '}' in /home/virtual/sitio185472/www/popotipo/registro.php on line 28

en la linea 28, hay un parentesis asi: }, eso le provoca algo, y si lo borro, hay mas problemas, cual es el problema ???

Título: Re: [TUT] Primeras conexiónes entre Flash & PHP (Login de Usuarios) [TUT]
Publicado por: RamFu en 27 de Junio de 2008, 01:32:10 am
Me parece que el problema esta solucionado arriba..
Título: Re: [TUT] Primeras conexiónes entre Flash & PHP (Login de Usuarios) [TUT]
Publicado por: Nanshan en 27 de Junio de 2008, 12:13:37 pm
ahora me da otros problemas :S, me sale esto:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/virtual/sitio185472/www/popotipo/registro.php on line 13
&estatus=ok&
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /home/virtual/sitio185472/www/popotipo/registro.php on line 26

que hago :(
Título: Re: [TUT] Primeras conexiónes entre Flash & PHP (Login de Usuarios) [TUT]
Publicado por: RamFu en 28 de Junio de 2008, 02:56:25 am
Comprueba:

include('conectar.php'); // Conectar.PHP inprescindible!!

Que se llame conectar.php este correcto confuigurado.

Saludos
Título: Re: [TUT] Primeras conexiónes entre Flash & PHP (Login de Usuarios) [TUT]
Publicado por: Nanshan en 28 de Junio de 2008, 11:36:06 am
lo he comprobado, usando esos datos para la coneccion de un minichat y funciona :S, pero no entiendo por que no funciona en el registro :S, he estado mirando, y el error dice que esta en la linea 13 y 26:

13:if($row = mysql_fetch_array($result))
26:mysql_free_result($result);

y lo que no entiendo es esto en la pagina de error dice esto: &estatus=ok& que significa: // Regisro OK
Título: Re: [TUT] Primeras conexiónes entre Flash & PHP (Login de Usuarios) [TUT]
Publicado por: RamFu en 28 de Junio de 2008, 15:10:40 pm
Esque el error, esta cuando comprueba el MYSQL... comprueba que tienes las tablas de mysql correctas, vuelve a revisar en CONECTAR.PHP, etc. todo lo que tenga que ver con MYSQL...
Título: Re: [TUT] Primeras conexiónes entre Flash & PHP (Login de Usuarios) [TUT]
Publicado por: Nanshan en 29 de Junio de 2008, 11:44:00 am
He estado mirando algunas cosillas, que creo que estaban mal, ahora, si, sabe cuando conecta con la DB :D, pero se queda: Conectando..., eso a que es debido?, por si lo quieres ver: http://elconcurso.webspacemania.com/funcara/reg.html
Título: Re: [TUT] Primeras conexiónes entre Flash & PHP (Login de Usuarios) [TUT]
Publicado por: x.mara.x en 29 de Junio de 2008, 16:52:01 pm
puede ser por el host pero fijate si se ha insertado en la base de datos
Título: Re: [TUT] Primeras conexiónes entre Flash & PHP (Login de Usuarios) [TUT]
Publicado por: RamFu en 30 de Junio de 2008, 16:31:03 pm
jaja cierto =).
Título: Re: [TUT] Primeras conexiónes entre Flash & PHP (Login de Usuarios) [TUT]
Publicado por: Nanshan en 30 de Junio de 2008, 23:46:03 pm
no es por nada xD , pero, como se mira si se han insertado los datos xD
Título: Re: [TUT] Primeras conexiónes entre Flash & PHP (Login de Usuarios) [TUT]
Publicado por: RamFu en 01 de Julio de 2008, 00:22:18 am
Entrando en el administrador de bases de datos de tu sitio (o phpmyadmin). Saludos!
Título: Re: [TUT] Primeras conexiónes entre Flash & PHP (Login de Usuarios) [TUT]
Publicado por: x.mara.x en 01 de Julio de 2008, 01:44:45 am
Porque a mi con webspacemania se tardaba mil años diciendo "Conectando ..." y luego ya se habia insertado o algo así. xD
Título: Re: [TUT] Primeras conexiónes entre Flash & PHP (Login de Usuarios) [TUT]
Publicado por: Nanshan en 01 de Julio de 2008, 20:50:12 pm
a ok, ya lo veo  xD, si se han insertado, entonces era que yo puso una cosa mal, ya esta, gracias RamFu por tu ayuda. +1

PD: mirad lo que hize :)

http://elconcurso.webspacemania.com/Wapiximo,%20un%20navegador%20KD.html

para usarlo como un chat virtual, mmm, como que no funcionaria, por la forma que lo hize, pero como estoy probando lo hize asi :D, espero que hos guste

Título: Re: [TUT] Primeras conexiónes entre Flash & PHP (Login de Usuarios) [TUT]
Publicado por: x.mara.x en 01 de Julio de 2008, 21:24:21 pm
Ta bien xD
Título: Re: [TUT] Primeras conexiónes entre Flash & PHP (Login de Usuarios) [TUT]
Publicado por: RamFu en 02 de Julio de 2008, 00:27:27 am
Esta bueno =).
Título: Re: [TUT] Primeras conexiónes entre Flash & PHP (Login de Usuarios) [TUT]
Publicado por: Error en 02 de Julio de 2008, 15:50:07 pm
dame 1 ejemplo de que poner en:

form_lv.sendAndLoad("http://www.tuweb.com/registro/php/entrar.php", form_lv, "POST")


que web pongo?
Título: Re: [TUT] Primeras conexiónes entre Flash & PHP (Login de Usuarios) [TUT]
Publicado por: x.mara.x en 02 de Julio de 2008, 18:19:54 pm
Error, www.tuweb.com representa TU web.. por ejemplo si es gratishost o webspacemania
http://tutoflash.webspacemania.com .. www.error.com, http://tutoflash.gratishost.com .. etc.
Título: Re: [TUT] Primeras conexiónes entre Flash & PHP (Login de Usuarios) [TUT]
Publicado por: Error en 02 de Julio de 2008, 19:29:58 pm
el error esta en el  entrar.php o en el registrar.php
Título: Re: [TUT] Primeras conexiónes entre Flash & PHP (Login de Usuarios) [TUT]
Publicado por: broo en 09 de Junio de 2009, 20:01:33 pm
Una pregunta con el nombre de cada campo de texto te refieres a la variable?

En tal caso la variable del campo de texto de usuarios seria "user" y la de la contraseña seria "pass" no?
Título: Re: [TUT] Primeras conexiónes entre Flash & PHP (Login de Usuarios) [TUT]
Publicado por: javi-net en 25 de Julio de 2009, 03:31:37 am
Ami me sale en el reg. html, sale:

Citar
Error de conexión

y revise los datos en el conectar. php (PHP/conectar. php) y esta todo bien =S Miren. . .

Citar
   $db_host="localhost";
   $db_nombre="usuarios";
   $db_user="root";
   $db_pass="****No rellene este campo para que no viera nadie xD, Pero puse una contraseña. . . *****";

¿Alguna ayuda?