Ir para conteúdo

Arquivado

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

LeafaR19

Problema

Recommended Posts

Oi, eu estou integrando o banco de dados do meu Fórum com o flash, depois vou criar o site, mas primeiro, desejo fazer testes...

 

 

 

Mas está acontecendo Problemassss....

 

 

 

Vou postar meus códigos....

 

Meu login.php

 

<?php// Conexão com o banco de dadosrequire "comum.php";// Inicia sessõessession_start();// Recupera o login$username = isset($_POST["username"]) ? addslashes(trim($_POST["username"])) : FALSE;// Recupera a senha, a criptografando em MD5$user_password = isset($_POST["user_password"]) ? md5(trim($_POST["user_password"])) : FALSE;// Usuário não forneceu a senha ou o loginif(!$username || !$user_password){	echo "Você deve digitar sua senha e login!";	exit;}/*** Executa a consulta no banco de dados.* Caso o número de linhas retornadas seja 1 o login é válido,* caso 0, inválido.*/$SQL = "SELECT user_id, username, user_password, user_posts		FROM phpbb_users		WHERE username = '" . $username . "'";$result_id = @mysql_query($SQL) or die("Erro no banco de dados!");$total = @mysql_num_rows($result_id);// Caso o usuário tenha digitado um login válido o número de linhas será 1..if($total){	// Obtém os dados do usuário, para poder verificar a senha e passar os demais dados para a sessão	$dados = @mysql_fetch_array($result_id);	// Agora verifica a senha	if(!strcmp($user_password, $dados["user_password"])){  echo ("&enviado=".$dados["username"]."&");  echo ("&msg=Clique novamente para efetuar o login&");  echo ("&user_id=".$dados["user_id"]."&");  echo ("&user_posts=".$dados["user_posts"]."&");}else {  echo ("&enviado=Senha errada&");}}else {  echo ("&enviado=Usuário não cadastrado&");}?>

E esse é o código do meu flash....

 

stop();btn_enviar.onRelease = function() {	System.useCodepage = true;	loadVariablesNum("http://forum.thecrimsbr.biz/test/login.php", 0, "POST");if (enviado == "Usuário não cadastrado"){}elseif (enviado == "Senha errada"){}elseif (enviado == username){	gotoAndStop(2);}	}

 

Pra pode fazer log in precisa logar apertar o botaão enviar 2 vezes, isso é ruim...

 

E eu estava tentando fazer com o comando if nisso, mas não estava dando certo, pois sempre carregava o errado, desse jeito foi, mas aconteceu isso, tem que apertar 2 vezes, e não é bom isso....

 

 

http://forum.thecrimsbr.biz/test/login.swf

 

entra aí pra você da uma olhada, o arquivo php parece que está certo, pois está perfeita a interação...

 

 

Nomde de usuário: "Teste"

senha: "testuser"

 

testa com esse ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

E aí cara!

 

O problema de "apertar duas vezes" é o seguinte:

 

Quando você clica a primeira vez o flash faz a requisição do arquivo no servidor e já tenta comparar a variável 'enviado', mas sempre vai dar erro. Isso acontece porque não dá tempo do flash pegar as informações do php e ele já vai testando a variável. Por isso que quando você clica a segunda vez dá certo: já deu tempo do flash carregar os dados do primeiro requerimento.

 

Como resolver? Use o loadVars. É uma classe que, dentre outras coisas, te diz quando as vars foram carregadas, aí sim você faz as verificações.

 

Tem um tuto sobre ela aqui: http://www.imasters.com.br/artigo/4351/fla...dados_no_flash/

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seguindo o tutorial não deu certo pra colocar no meu site teste....Como eu faria... pois tem que da load em um php que vai fazer o sistema de login... e não um txt...heheheFiz um monte de coisas.. mas num deu certo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas não precisa necessariamente ser um txt, pode ser php também.

 

Quando você dá o seu loadVariablesNum, você envia as variáveis 'username' e 'user_password' pelo método POST, certo? E como resposta recebe a variável 'enviado'. Com o loadVars ficaria:

 

stop();btn_enviar.onRelease = function() {	//Criando o LoadVars que irá enviar as variáveis	var enviaLV:LoadVars = new LoadVars();	//Criando o LoadVars que irá receber a resposta	var recebeLV:LoadVars = new LoadVars();	//Adicionando as variáveis do seu swf ao objeto loadVars	enviaLV.username = username;	enviaLV.user_password = user_password;	//Criando a ação que será executada somente quando receber a resposta	recebeLV.onLoad = function(ok:Boolean) {		//Se conseguiu acessar o arquivo		if (ok) {			//A variável que vem na resposta do PHP fica armazenada dentro			// do objeto recebeLV, por isso seu nome vem antes do nome da variável			if (recebeLV.enviado == "Usuário não cadastrado") {				//			} else if (recebeLV.enviado == "Senha errada") {				//			} else if (recebeLV.enviado == username) {				gotoAndStop(2);			}		}	};	//Enviando as variáveis pelo enviaLV e recebendo pelo recebeLV	enviaLV.sendAndLoad("http://forum.thecrimsbr.biz/test/login.php", recebeLV, "POST");};

Ah, e outra: não use o System.useCodepage = true; ! Use um utf8_decode, por exemplo:

 

utf8_decode($_POST["username"]);

 

Assim você garante que as pessoas que não utilizam o padrão ISO-8859-1 possam acessar sem problemas.

 

Flw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nossa cara, ajudo muito einn.....

 

 

http://thecrims.orgfree.com/login.htm

 

 

da uma olhada ;)

 

 

 

Coloquei em um lugar novo... pois aew eu vo pode fazer oq quiser neh..

 

AhuHuahA...

 

 

 

Mas agora.. cmo eu faço pra montar um botão de log out??

 

esse eu num sei....

 

 

 

Fazer frames restristos...

 

 

tipo.. um menu que tenha uma opção que soh da pra acessa logado.. e assim vai...

hehehe..

 

 

e eu tbm qria saber...

 

cmo faz pra aparecer no menu embaixo assim (Logado como Fulano)??mas sem atualizar o menu, e quando der logout sair esse escrito

 

 

E por exemplo, caso ele for moderador do fórum, ele vai ter um level no forum... esse level ser a msma coisa no flash...

 

Reconhecido como id 2, aparecer tipo, Moderador embaixo do Logado como Fulano

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.