• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

stinkle

FLASH + PHP

8 mensagens neste tópico

Boas...

Estou a tentar fazer um site em Flash e PHP, mas não sei como fazer com que estas linguagens interagam. Já vi uns tuturiais que usam o LoadVars mas ainda não percebi como se utiliza. O que eu queria era uma ajudinha para conseguir comunicar com o PHP através do site. :hmm:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tens 3 opções de comunicar entre php e flash.

---------------------------------------------------------------------------------------------------------------------

-classe LoadVars:

  http://www.sephiroth.it/tutorials/flashPHP/loadVars/

  http://flash-creations.com/notes/servercomm_database.php

-XML gerado pelo php.

  No flash, tratas como se trata-se de um xml.

 

var myXML:XML = new XML;
  myXML.load("generateXML.php);

-Por fim, o Remoting

Existem diversas ferramentas, algumas open-source (como a malta gosta :P), como por exemplo o AMFPHP

------------------------------------------------------------------------------------------------------------------------

Agora é veres qual é o caso que encaixa melhor no que queres fazer.

Se apenas queres passar dois ou três parâmetros como um mail form, upload de imagens, etc. aconselho o loadVars.

Se é para fazer o display de informação que pode ser personalizada fora do flash e ñ queres ter os dados numa BD, por exemplo uma galeria de imagens, aconselho XML.

Se queres fazer uma comunicação entre uma BD e o flash aconselho o remoting porque a informação ao contrário das anteriores é des-serializada.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas...

Não estou a conseguir fazer login com o meu código

<?
$ligacao=mysql_connect("192.168.1.253","carlos","aeiou") or die(mysql_error());
mysql_select_db("escola",$ligacao);
$query = mysql_query("SELECT * FROM utilizador WHERE nome = \"".$_POST['username']."\" AND password = \"".$_POST['pass']."\"");
mysql_num_rows($query)
?>

on (release) 
{
if((_root.username.text <> "") && (_root.pass.text <>""))
{
	login = new LoadVars();
	login.username = _root.username.text
	login.pass = _root.pass.text
	login.accao = "login";*/
	login.sendAndLoad("main.php", login, "POST");
	login.onLoad = function()
	{
		if(!this.error && this.username>0 )
		{
			_root.gotoAndStop("registado");
			_root.mensagem.text= "Bem vindo!";
		} else {
			_root.mensagem.text= "Erro - Dados de login inexistentes!";
		}
	}
} else {
	_root.mensagem.text= "Erro - Tem de preencher os dois campos!";
}
}

CREATE DATABASE `site_informatica` ;

CREATE TABLE utilizador (  
nome VARCHAR(15) NOT NULL default '0', 
password VARCHAR(32) NOT NULL default '0', 
email VARCHAR(50) NOT NULL default '',
pergunta VARCHAR(255) NOT NULL default '',
resposta VARCHAR(255) NOT NULL default '',
PRIMARY KEY (nome),
UNIQUE KEY email(email),
UNIQUE KEY nome(nome)
) TYPE=MyISAM

INSERT INTO utilizador VALUES ('carlos', 'abcd', 'stinkle.carlos@gmail.com', 'Qual é a linguagem de programação que preferes?', 'PHP')

Se alguém me puder dizer o que está mal... Agradecia imenso ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Oi stinkle.

Tens de criar duas instâncias LoadVars, uma para enviar e outra para receber.

No código php deves enviar uma variável de confirmação para testar no flash.

<?
$ligacao=mysql_connect("192.168.1.253","carlos","aeiou") or die(mysql_error());
mysql_select_db("escola",$ligacao);
$query = mysql_query("SELECT * FROM utilizador WHERE nome = \"".$_POST['username']."\" AND password = \"".$_POST['pass']."\"");

if(mysql_num_rows($query)>0){
    echo "&loginOK = 1"; //TRUE;
}else{
    echo "&loginOK = 0"; //FALSE;
}
?>

var sender:LoadVars = new LoadVars();
var receiver:LoadVars = new LoadVars();

receiver.onLoad = function()
	{
		if(this.loginOK)
		{
			_root.gotoAndStop("registado");
			_root.mensagem.text= "Bem vindo!";
		} else {
			_root.mensagem.text= "Erro - Dados de login inexistentes!";
		}
}

on (release) 
{
if((_root.username.text <> "") && (_root.pass.text <>""))
{
	sender.username = _root.username.text
	sender.pass = _root.pass.text
	sender.accao = "login";
	sender.sendAndLoad("main.php", receiver, "POST");

} else {
	_root.mensagem.text= "Erro - Tem de preencher os dois campos!";
}
}

Penso que assim deve funcionar.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

boas...

Continuo a não conseguir fazer o login :S.

Se te lembrares de mais alguma coisa diz ;)

Estive a rever o código, experimentei o php com html e funciona, penso que o problema reside na recepção do php no flash.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Oi, desculpa a demora mas cá vai.

Qual é o valor da variável loginOK que o flash recebe?

receiver.onLoad = function()
{
		if(this.loginOK)
		{
			_root.gotoAndStop("registado");
			_root.mensagem.text= "Bem vindo!";
		} else {
			_root.mensagem.text= "Erro - Dados de login inexistentes!";
		}
      trace(this.loginOK);
}

Uma hipótese é que talvez pq o que vem do php ser tratado como string ñ esteja a associar a variável loginOK como boleana.

Experimenta assim:

receiver.onLoad = function()
{
		if(this.loginOK == 1)
		{
			_root.gotoAndStop("registado");
			_root.mensagem.text= "Bem vindo!";
		} else {
			_root.mensagem.text= "Erro - Dados de login inexistentes!";
		}
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora