Flash – Criando um sistema de login usando PHP+MySQL.Olá a todos. Para os que não me conhecem meu nome é Natan D. Alves, sou um dos moderadores do Fórum de Flash&ActtionScript do MxStudio e esse será meu primeiro artigo. Hoje iremos criar um sistema de login utilizando PHP+MySQL e cadastro de pessoas para efetuar o login. Pré-requisitos para esse tutorial
Criando tabela no MySQLVamos criar a tabela que será responsável por receber os dados do usuario e senha. Sua tabela tem que ter esse esquema:
Criando o PHPCom a tabela criada vamos ao PHP. Ele será responsável por receber os valores vindos do Flash, fazer a consulta no MySQL e cadastrar. Salve como login.php. <?php/*Conectando ao MySQL*/?>Criando a Interface em FlashAgora vamos ao Flash. Usaremos duas camadas, uma responsável pelos objetos e outra pela as ações, todos com três frames em cada. Como na Figura:
login: aqui será onde o usuário colocara seu login e senha No primeiro frame será responsável pelo login. Iremos criar dois campos imput com intancia de usuario e senha.
Criaremos também um campo de texto dinamico com instancia de mensagem. Esse campo será responsável por receber as mensagens vindas do PHP. Esse campo estará em todos os Frames.
Ainda no primeiro Frame iremos criar dois botões:.
Vamos ao ActionScript do primeiro Frame. Clicando no primeiro Frame da camada actions abra o painel Actions (F9) e coloque: /*Removendo os itens do botão direito do mouse*/No segundo Frame será aonde o usuário será levado se fizer o login corretamente. Portanto fica a critério de vocês fazer o que preferirem. No terceiro e último frame será para o cadastramento de usuário. Iremos colocar os mesmos campos imput que colocamos no primeiro frame com as mesmas instancias, não se esqueça do campo de texto dinâmico mensagem. Iremos criar mais dois botões:
Agora vamos ao ActionSript. No terceiro frame da camada actions abra o painel Actions (F9) e coloque: stop();
Considerações FinaisAprendemos como cadastrar e efetuar login usando PHP/MySQL. É claro que pode colocar mais campos, fazer mais implementações, tudo depende de Você. Com esse sistema podemos criar uma área particular especial, liberação de Informações ente outras maneiras com segurança. O resultado será algo parecido com esse: Pronto, está pronto seu sistema de login e cadastro. Espero que tenham gostado. Um abraço a todos e até a próxima. Autor: Natan D. Alves – Moderador do Fórum de Flash & ActionSctipt MXSTUDIO Qualquer dúvida envie um e-mail para natanalves@mxstudio.com.br ou acesse nosso fórum |
Assine o Feed de Comtentários ou URL de Trackback
deveria ter um link disponibilizando os arquivos em zip neh?! =x
Estou testando esse sitema mais não esta dando certo…
na tela cadastro, quando clico em cadastrar o status (mensagem) fica em “cadastrando…” e não sai disso! não sei o que esta acontecendo, acho que não esta interagindo com o php ou mysql, não sei…
o que poderia ser?
Uma pequena correção, de “usuario INT(30) NOT NULL,” para “usuario VARCHAR(30) NOT NULL,”
INT é para números inteiros, assim fica impossivel colocar letras no login =D
Use o BD da seguinte forma.
CREATE TABLE login (
id INT(5) NOT NULL AUTO_INCREMENT,
usuario VARCHAR(30) NOT NULL,
senha INT(10) NOT NULL,
PRIMARY KEY (id)
);
eu consequi me cadastrar e agorra.
Me madem por e-mail:
vix-cat99@hotmail.com
A validação do usuario funciona mas não consigo chamar o frame que deveria…Parece que o flash não consegue carregar a varíavel “correto”, no if dessa váriavel ele vai direto pro else….Alguem tem uma solução…..Urgente!!!!!
Olá, Natan, perceba que com o sistema de busca a autentificação que fez no código php, só estamos validando a senha, de forma que se eu cadastrar o login “nillgoterra” com a senha “123456″, quando fossemos autenticar, o php iria verificar apenas a existencia da minha senha, e não a compatibilidade da minha senha o meu login. Da forma que está, eu poderia colocar qualquer coisa como login e a senha “123456″ que estaria logado!
Isso não é muito legal pois veja bem, se tivermos dois cadastros diferentes com a mesma senha o código poderá se confundir..
Seria legal você postar ai para a galera uma forma de fazer a autenticação com uma validação para sabermos se a senha é correspondente ao login colocado, caso não seja também não dê acesso.
Espero ter ajudado.
Atenciosamente,
Nill Goterra
Nill, o PHP não verifica apenas a senha, verifica o nome, testei aqui com várias senhas e logins diferentes e não funcionou da forma que você disse.
A prova que o PHP procura por ambos está nessa linha:
$query = “SELECT * FROM login WHERE usuario = ‘$usuario’ AND senha = ‘$senha’”;
A consulta só retorna o resultao caso os ambos estejam certos. Se o seu ocorre isso tem alguma coisa errada em seu arquivo PHP ou no Flash.
[]s
Parabéns!!!
procurei em muitos lugares e só o seu deu certo…
vc sabe como explixar as coisas e etc.
você vai longe cara!
o mundo rpecisa de mais gente como vc!
^^
$happyMode = true;
desde de sexta passada tentando fazer esse sistema de login em flash…
só tem uma coisinha…ele não vai pro quadro 2 quando o login é efetuado….mas eu já to trablahndo nisso…=D
abraçoss!!
olha eu aki de novo…
resolvi o erro…
não sei se aconteceu com mais alguém…mas aqui o flash não reconhece o “correto = 1″ da linha 32 do “login.php”
então eu tive q mudar assim na linha 46 do codigo do flash:
if (this.mensagem == “Bem-Vindo “+_root.usuario.text)
e pronto!!!
deu certooo
nossaaa
nao tem coisa melhor do qeu vc trabalhar mto aprendendo sobre varias coisas e conseguir algo que vc quer…
a uma semana atras eu não sabia nada de php nem MySQL e agora… eu sei o suficiente… conseguii!
éee
xD
abraçoss
po Natan, nota 10 *.*
eu tenho uma duvida. Assim, eu pretendo montar um site com um tipo de ‘Anime’, mas, além do login, queria que a pessoa soh pudesse baixar arquivos se estivesse logado … eh dificil fazer isso ?
$duvidas = $_GET['action']
se puder me ajudar sou eternamente grato *.*
xDD
Olá Natan,
Primeiramente parabéns pelo belo JOB.
Eu estava pensando em usar este sistema, mas eu não queria que o visitante do site se cadatrasse, ou seja, o administrador do site iria criar o LOGIN e SENHA e enviar para os clientes, isso seria para uma aréa restrita, tem como fazer isso? De que forma?
AH! esse login tem como fazer com que quando o usuário Logar e estiver certo abrir um Popup?
Abraços e continue assim, irá longe desta forma.
Roger.
GENTE EU NAUM SEI INSTALAR O MY SQL ME AJUDEN ME ADD NO MSN lrgabriel_6@hotmail.com
desculpa mais… o que é PHP?
my sql?
As perguntas podem ser bobas, mais sou novato e não sei o que significa isso!
e a proposito, quando aparecem aqueles numeros :1., 2., 3.,…
ex:1. # /*Removendo os itens do botão direito do mouse*/
2. # Stage.showMenu = false;
3. # stop();
deve botar eles juntos ou não?
além de não validar com seguraça, é muito fácil de invadir e acessar o DB via SQL injection. Refiz o seu exemplo e invadi com muita facilidade, loguei tranqulamente. Conselho?? Use expressão regular com a funçao ereg para evitar sql injectionn. Abraços.
OLÁ DESIRE,
ta vendo esse trecho do action script do frame 1?
/*Habilita o botão entrar*/
entrar.enabled = true;
/*Habilita o botão novo*/
novo.enabled = true;
/*Se o servidor retornou o valor correto com valor igual a 1*/
if (this.correto = 1) {
no exemplo do natan está if (this.correto==1), experimente deixar apenas com um “=”. Funcionou!!
Olá, eu tentei aqui mas não está dando certo, ele aparece uma mensagem assim quando tento cadastrar ou fazer login:
Cadastro Efetuado com Sucesso”;
}
break;
}
?>
E não acontece nada, não registra nada no banco de dados, eu estou usando o xaamp apache heidisql, mysql tudo instalado corretamente, mas só faz isso… O que pode ser?
Amigo, gostaria de sabe c tem como coloca uma mensagem personalizada na frame 2 para o usuario, tipo: Seja BEm Vindos ‘usuario’ ao nosso site
Mas p/ faze isso eu gostaria de sabe como faço p/ colocar o login do usuario na frame 2 p/ mim construir essa mensagem?
Eu gostaria de saber se nao tem como você colocar o arquivo ja pronto para download.. Isso falcilitaria a vida de muitos.
Qalquer coisa entre em contato comigo via e-mail: karameicos@hotmail.com
Agradeço pela atenção
Karameicos
Na preview do Flash 8 funcionou perfeitamente mas rodando no site não :S O que devo fazer ?
Pera, um instante… A tabela deve ter o nome de “cadastro” (sem aspas) ou “login” ?
Escrevo para registrar um problema que tive, mesmo seguindo os passos do tutorial.
Criei todos os arquivos e layouts como foi descrito no tutorial ( excelente por sinal ), criei o banco de dados MYSQL com as tabelas e tudo mais. Porém quando testava o programa, os dados não eram cadastrados no banco de dados corretamente, ficavam zerados muitas vezes. Então depois de muuuuuuuuuuuitos testes, descobri que o problema era o tipo dos campos “usuario” e “senha” do banco de dados. No tutorial está descrito como INT, mas eu só consegui fazer funcionar utilizando os campos como VARCHAR.
Obrigado pela atenção, até a próxima
*David Sá *
cara é pra vc colocar o endereço da sua loja.
ex:
http://www.tuningsound.com.br/login.php?action=entrar”
Zippei os arquvivos que esse turorial ensina a fazer. quem quiser só fazer o download.
http://rapidshare.com/files/257468655/Login_em_flash.rar.html
Muito bom o tutorial!!
aqui comigo funcionou perfeitamente, mas eu estou com um problema:
Fiz o seguinte:
linha 1 var nome_v;
codigo igual até:
linha36 nome_v = objManda.usuario = usuario.text;
e depois no fim do codigo coloquei:
linha69 meu_nome.onPress = function(){
msg.text=nome_v;
}
o que acontece é que esse texto não aparece, acredito que a variavel nome_v não está saindo da função, pode ser isso? como resolver?
Desde ja Muito Obrigado!!
ola meu nome e andreia desculpe errei uma coisa obrigada
@@@@@@@@ ERRO @@@@@@@@@@
Olá Pessoal,
Muitos estão tendo problema com o código do flash : if (this.correto == 1) { ……
Bom pessoal ta acontecendo o seguinte:
No login.php ele definiu que :
print “&mensagem=Bem-Vindo+$usuario&correto==1″;
Se o Usuario e Senha for correto com o que está no Banco de Dados faça:
Mensagem = Bem-Vindo+ O Nome do Usuário
e que a variável CORRETO é ==1
só que no envio de volta para o flash ele identifica que : correto ==1 e só considera apenas um = não os dois == que ele pôs para afirmar que é 1..
bom chega de bla bla bla bla..
1º Método de concerto :
Na primeira sena do FLASH, no Action Scrip mude a linha:
if (this.correto == 1) {
Para:
if (this.correto == “=1″) {
OU
2° Método:
no Login.PHP mude a linha:
print “&mensagem=Bem-Vindo+$usuario&correto==1″;
Para:
print “&mensagem=Bem-Vindo+$usuario&correto=1″;
Vlws galera.. espero ter ajudado.. Abs!
@@@@@@@@@@@ ERRO CONCERTADO @@@@@@@@@@@@@
poxa muito boa a dica muito obrigado! tenho certeza que irei melhorar meu site 61% com essa dica valeu!
excelente esquema de login facil de fazer e configura até a mim que nao sei php e pricipalmente mysql, otimas esplicações…
obrigado
Muito bom o tutorial, usei como base para alguns sistemas simples de loguin e senha para acesso a cadastro de imagens por exemplo. É imprecionante o quanto o Flash anda crescendo no mercado, antigamente diziam por ai que o flash era para quem queria ficar na moleza, mas agora com efeito gerados a partir de AS avançado garantem uma qualidade incomparável e de brinde, tamanho final de arquivo leve que garante um peso leve ao site.
Para usar este tutorial tem que ter algum conhecimento de flash, mysql ou php? Ou pode ser também os completamente leigos?
Gostaria que vocês fossem mais específicos. Mais detalhados.
Onde acho a resposta para todas as perguntas feitas neste comentário?
Se cada pergunta tivesse a resposta em seguida, seria a resposta para muitos de nós.
Quais os programas que irei usar na criação desta ficha de cadastro?
Eu já tinha feito o tutorial em AS 2.0 e agora estou tentando em AS 3.0. Já estou quase no fim. O Flash está enviando os dados corretamente para a base MySQL, mas ainda não consegui uma coisa: receber as mensagens de erro do PHP para o Flash.
No PHP do Tutorial está assim:
…
*Se já existir o usuário*/
if ($vai == 1){
/*Manda a mensagem de Erro para o Flash*/
print “&mensagem=Usuário já Existe”;
…
No Flash está assim:
….
if (ok) {
/*Habilita o botão cadastrar*/
cadastrar.enabled = true;
/*Habilita o botão voltar*/
voltar.enabled = true;
/*Mensagem vinda do PHP*/
mensagem.text = this.mensagem;
…
Meu problema está no valor da propriedade text do campo de texto do Flash “mensagem” (mensagem.text), pois no AS 3.0 o valor “this.mensagem” não está funcionando.
Uma ajuda seria bem-vinda. Grato.
Cara, primeiramente parabéns pelo tutorial, funcionou quase 100%, só estou com um problema de cadastrar outro user, toda vez q eu vou cadastrar mais usuarios ele logo de cara me diz q o user já existe, sendo q n existe nenhum outro user a n ser o primeiro q cadastrei..
Outra dúvida é a seguinte, qdo fui visualizar a tabela no banco de dados o usuario saiu como “1″ e n como “daniel” q foi o q eu cadastrei e a senha a mesma coisa, n foi inserido a senha q eu digitei, foi colocado “0″ no lugar..
O q tem de errado nisso por favor q eu n estou conseguindo encontrar a solução aki..
Obrigado..
Bom dia,
Primeiramente parabéns pelo tutorial..
Mas estou com um problema..
Só faz a conexão e cadastro de usuario no primeiro acesso, depois todo e qualquer user q eu vou criar, diz q usuário já existe..
tentei tanto local qto hospedado.. e me traz o mesmo erro sempre..
Alguém já passou por isso e pode me auxiliar???
Obrigado a todos..
Pessoal, o código está correto, a única coisa que necessita ser arrumada é a criação da tabela que apresenta os itens usuario e senha como int, e na verdade deveriam ser varchar, já que não são compostos apenas por números na maioria dos casos. Modifiquei ainda o número de caracteres de ambos para 15, um número mediano e razoável para cadastro de usuários e senhas com um bom nível de proteção.
Sendo assim, temos:
CREATE TABLE login (
id INT(5) NOT NULL AUTO_INCREMENT,
usuario VARCHAR(15) NOT NULL,
senha VARCHAR(15) NOT NULL,
PRIMARY KEY (id)
);
Para os que estão tendo problemas e não saem de “cadastrando…” não esqueçam de alterar o AS tanto do frame 1 quanto do frame 3 para seus respectivos websites onde no objEnvia.sendAndLoad está o localhost e procurem não alterar o nome dos arquivos. Se assim o fizerem, alterem também sua referência onde estes estão instanciados.
Abraço!
Natan,
Está muito bom o tutorial, mas eu pesso a você que se possível crie uma vidêo aula ensinando isso seria mais facíl !!!
Obrigado,
Por Favor me responda por e-mail se vai disponibilizar a vidêo aula !