Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Andre Summers

[Resolvido] Formulário Flash + PHP

Recommended Posts

Estou tendo dificuldades ao passar variaveis do Flash para PHP e depois do PHP para Flash. Podem me dar uma ajuda?

 

Actionscript

stop();
System.useCodepage = true;
btn_ok.onRelease = function(){

var envia = new LoadVars();
var recebe = new LoadVars();

envia.cpf = cpf.text;

envia.sendAndLoad("login.php", recebe, "POST");

recebe.onLoad = function(){
if(recebe.logado == "ok"){
trace("Funcionou!");
}else{
trace("Erro!"+"Retornos: "+recebe.variavelextra);
}//Fecha ELSE
}//Fecha onLoad

}//Fecha onRelease

 

PHP

##### Recebo a variavel #################################
$cpf = $_POST['cpf'];

##### Faço a verificação e retorno se está logado ou não #############
$cpf_correto = "123";

if($cpf == $cpf_correto){
	$logado = "ok";
	echo "logado=$logado";
}else{
	$logado = "no";
	echo "logado=$logado&variavelextra=$cpf";
}

Desde já agradeço.

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

##### Recebo a variavel #################################
$cpf = $_POST['cpf'];

##### Faço a verificação e retorno se está logado ou não #############
$cpf_correto = "123";

if($cpf == $cpf_correto){
	$logado = "ok";
	echo "logado=$logado";
}else{
	$logado = "no";
	echo "logado=$logado&variavelextra=$cpf";
}

Esse seu código basta colocar & na frente do lagado ali no echo e no final.

 

Assim:

 

echo "&logado=$logado&";

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tá funcionando. Tá imprimindo $logado na tela ao invés do conteudo dessa variavel.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Err então você ta fazendo algo errado O.o

 

Eu peguei seu código e só acrescentei o & no começo e no final ali como mostrei e mostrou o valor da variavel no if dentro do onLoad.

 

##### Recebo a variavel #################################
$cpf = $_POST['cpf'];

##### Faço a verificação e retorno se está logado ou não #############
$cpf_correto = "123";

if($cpf == $cpf_correto){
	$logado = "ok";
	echo "&logado=$logado&";
}else{
	$logado = "no";
	echo "&logado=$logado&variavelextra=$cpf&";
}

E assim no flash:

stop();
System.useCodepage = true;
btn_ok.onRelease = function(){

var envia = new LoadVars();
var recebe = new LoadVars();

envia.cpf = cpf.text;

envia.sendAndLoad("login.php", recebe, "POST");

recebe.onLoad = function(){
trace(recebe.logado);// aqui se eu colocar 123 vai retornar ok... se eu colocar qualquer outro numero retorna no.
if(recebe.logado == "ok"){
trace("Funcionou");
}else{
trace("Erro!"+"Retornos: "+recebe.variavelextra);
}//Fecha ELSE
}//Fecha onLoad

}//Fecha onRelease

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz umas mudanças no script. Agora ele ta retornando o "no". Mas só retorna o "no" mesmo estando o valor certo.

 

stop();
btn_ok._alpha = 40;
/*Ocultando/exibindo o botão OK de acordo com o preenchimento dos campos*/
var checaPreenche:Object = new Object();
checaPreenche.onKeyUp = function() {
	if (cpf.text != '') {
		//Habilitando botão
		btn_ok._alpha = 100;
		//Limpando o alerta
		alerta.text = " ";
	} else {
		//Desabilitando botão
		btn_ok._alpha = 40;
	}
}
Key.addListener(checaPreenche);

/*Dando focus ao campo cpf quando lê esse frame*/
Selection.setFocus(cpf);

/*Definindo função do botão OK*/
btn_ok.onRelease = function(){
	
var envia = new LoadVars(); //Objeto para enviar os dados
var recebe = new LoadVars(); //Objeto para receber os dados de volta

if (cpf.text != ''){
	envia.cpf = cpf.text;
	
	recebe.onLoad = function(){
	if(recebe.resposta == "ok"){
	trace("Funcionou!");
	} else {
	trace("Erro!"+"Retorno: "+recebe.resposta);
	}//Fecha ELSE
	}//Fecha onLoad
	
	envia.sendAndLoad("login.php", recebe, "POST");
	
} else {
	//Se o campo tiver vazio
	alerta.text = "Por favor insira seu CPF.";
}//Fecha ELSE

}//Fecha onRelease

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então cara...

 

A função onLoad..

 

Tem que ocorrer depois de você já ter enviado os dados... se você carrega o load antes de enviar... ele sempre vai dizer que ta errado... afinal pq a variável vai estar undefined ou null no php...

Então você só pode carregar alguma coisa depois de enviar a informação né? :)

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu já testei a função onLoad antes e depois do envio dos dados. O resultado é sempre o mesmo: imprime o "no" no output mesmo que o número esteja correto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom amigo...

 

Acredito que você esteja fazendo algo de errado.

 

Eis aqui o link com o código que eu postei a cima!

http://www.velhochico.com/toc/cpf/

 

Teste e verá que funciona...

 

Para baixar os arquivos:

http://www.velhochico.com/toc/cpf/cpf.rar

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu fiz um teste com meu arquivo num servidor e realmente ele funcionou e deu a resposta "ok".

 

Mas quando testo localmente ele só apresenta o "no", inclusive o que você fez e disponibilizou aqui.

 

E eu to montando isso para rodar num CD, não vai estar em servidor...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu fiz um teste com meu arquivo num servidor e realmente ele funcionou e deu a resposta "ok".

 

Mas quando testo localmente ele só apresenta o "no", inclusive o que você fez e disponibilizou aqui.

 

E eu to montando isso para rodar num CD, não vai estar em servidor...

Putz. Que doideira a minha. Eh claro que não vai funcionar... não tem o servidor pra rodar o PHP.

 

Valeu pela ajuda ai. Topico resolvido.

 

stop();
btn_ok._alpha = 40;/*Definindo o Alpha inicial do botão OK*/
Selection.setFocus(cpf);/*Dando focus ao campo cpf quando lê esse frame*/

/*Ocultando/exibindo o botão OK de acordo com o preenchimento dos campos*/
var checaPreenche:Object = new Object();
checaPreenche.onKeyUp = function() {
	if (cpf.text != '') {
		//Habilitando botão
		btn_ok._alpha = 100;
		//Limpando o alerta
		alerta.text = " ";
	} else {
		//Desabilitando botão
		btn_ok._alpha = 40;
	}
}
Key.addListener(checaPreenche);

/*######################################################*/
/*Definindo função do botão OK*/
btn_ok.onRelease = function(){
	
var envia = new LoadVars(); //Objeto para enviar os dados
var recebe = new LoadVars(); //Objeto para receber os dados de volta

if (cpf.text != ''){
	envia.cpf = cpf.text;
	alerta.text = " ";
	
	envia.sendAndLoad("login.php", recebe, "POST");
	
	recebe.onLoad = function(){
	if(recebe.resposta == "ok") {
		//trace("Funcionou!");
		alerta.text = "Logou.";
	} else if (recebe.resposta == "no") {
		//trace("Erro!"+"Retorno: "+recebe.resposta);
		alerta.text = "Sorry. Não logou.";
	}//Fecha ELSE
	}//Fecha onLoad
	
} else {
	//Mensagem de Falha no Processo de Logon
	alerta.text = "Por favor insira seu CPF.";
}//Fecha ELSE

}//Fecha onRelease

/*#######################################################*/
/*Definindo função do botão Sair*/
btn_sair.onRelease = function(){
	gotoAndStop(28);
}//Fecha onRelease

Compartilhar este post


Link para o post
Compartilhar em outros sites

PHP não roda... se não for em servidor que rode PHP ou serviço que rode... com xampp, easyphp etc...

 

Se você não usar nenhum codificador ele não vai rodar mesm... então sempre vai retornar errado.

 

Para isso você teria de usar um verificador dentro do flash mesmo... basta colocar if / else para ver se o código ta correto mesmo... pra que usar PHP?

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa Tarde Andre!

 

Vamos ver se entendi sua dúvida...

 

Bem, primeiramente o swf tem que ser rodado diretamente no browser..., ou passar o caminho absoluto do arquivo.php,responsavel por manipular os dados,

lá dentro do flash na hora de chamar "arquivo.php", pois senão você não executará o conteudo do arquivo.

 

Bom agora vamos a parte propriamente dita de transição das informações :D

 

 

1) NO ARQUIVO DO FLASH

 

No caso do flash, no formulário, você deve usar a ferramenta Text Tool, para criar os campos, entretanto, nas propriedades de cada campo do formulário,

a primeira propriedade deve estar como "static text", mude para "Dynamic text", outra coisa, embaixo do "Dynamic text", tem um campo vazio, ali você deve por o nome que vai identifcar esse campo (nome do campo, Ex: cpf) para poder passar o conteudo para o PHP...

Depois crie um botão, pressione F9 encima do botão para abrir o action script e ali você configura o envio e recebimento.

 

Ali você passa o seguinte:

 

 

on(release){ // release, propriedade do mouse quando soltar o click do botão

 

// Objeto LoadVars

var envia :LoadVars = new LoadVars();

// Carrega o arquivo PHP 'login.php' , passando as variáveis do form

envia.load('login.php?cpf='+cpf.text);

// Ao arquivo ser carregado, a função 'carregarDados' é chamada.

envia.onLoad = carregarDados;

 

function carregarDados() {

 

// aqui dentro ja recebe todas as variáveis vinda do php, bastando chama-las com a palavra "this" na frente

if (this.logado == "ok"){

 

trace("Funcionou!");

 

}else{

 

trace("Erro!"+"Retornos: "+this.variavelextra);

 

}//Fecha ELSE

 

} // Fecha FUNCTION

 

} // Fecha on(release)

 

 

2) NO ARQUIVO DO PHP

 

A forma como você montou o arquivo php esta correta..

Bom para passar o conteudo das variáveis do PHP para o Flash, tem que ser através do comando "echo do PHP", seguinto a seguinte lógica...

 

echo "variavel=$variavel_php&variavel2=$variavel_php2";

 

no caso de mais de uma variável, sempre separar com o & como se fosse passar as variáveis na string da página php.

 

 

Espero que possa ter ajudado ;)

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.