Montei um sistema de login baseado num tutorial do Natan. Vou deixar aqui para consulta!
Primeiramente abra seu flash, salve o novo arquivo como cadastro.fla! Nele coloque 5 input text, o primeiro instancie de "nome", o segundo de "email", terceiro "login", quarto "senha", o quinto "senha2"."senha2" é um campo só para confirmar a "senha". Agora adicione 2 botões: "limpar" e "enviar", instnacie-os com esses mesmo nomes, e por último poe um campo de texto dinâmico, onde irá mostrar o status, instancie de status_txt.
no mesmo frame desse conteúdo, coloque as seguintes ações:
CÓDIGO
/* Definimos a ordem de tabulação */
nome.tabIndex = 1;
email.tabIndex = 2;
login.tabIndex = 3;
senha.tabIndex = 4;
enviar.tabIndex = 5;
limpar.tabIndex = 6;
/* Criamos um LoadVars que manda as informações ao PHP */
var mysql:LoadVars = new LoadVars();
/* Ao pressionar do botão enviar */
enviar.onPress = function() {
/* Verificamos se o campo nome foi preenchido */
if (nome.text == "") {
/* Mostramos a mensagem de erro */
status_txt.text = "Informe seu Nome";
/* Se não, verificamos se o campo email foi preenchido */
} else if (email.text == "") {
/* Mostramos a mensagem de erro */
status_txt.text = "Informe seu E-mail";
/* Se não, verificamos se o campo email contém os caracteres @ e . */
} else if (email.text.indexOf("@") == -1 || email.text.indexOf(".") == -1) {
/* Mostramos a mensagem de erro */
status_txt.text = "Informe corretamente seu E-mail";
/* Se não, verificamos se o campo comentario foi preenchido */
} else if (login.text == "") {
//Verifica se colocou um login
status_txt.text = "Informe seu login";
} else if (senha.text == "") {
//Verifica se pois senha
status_txt.text = "Informe uma senha";
} else if (senha2.text == "") {
//verifica se repetiu a senha para confirmação
status_txt.text = "Confirme a senha";
} else if (senha.text != senha2.text) {
//Verifica se senha1 e senha2 são iguais
status_txt.text = "As senhas devem estar iguais";
/* Se todos os campos estiverem corretos */
} else {
/* Mostramos o status de Enviando Mensagem */
status_txt.text = "Enviando Mensagem";
/* Mandamos ao PHP os valores */
mysql.nome = nome.text;
mysql.email = email.text;
mysql.login = login.text;
mysql.senha = senha.text;
/* Enviamos ao PHP os dados e carregamos as mensagens do PHP */
mysql.sendAndLoad("http://localhost/cadastro.php?action=cadastrar", mysql, "POST");
/* Ao carregar o arquivo PHP */
mysql.onLoad = function(ok) {
/* Se carregou sem problemas */
if (ok) {
/* Mostramos a mensagem vinda do PHP */
status_txt.text = this.mensagem;
/* Apagamos os campos input */
nome.text = "";
email.text = "";
login.text = "";
senha.text = "";
senha2.text = "";
}
};
}
};
/* Ao pressionar do Botão limpar */
limpar.onPress = function() {
/* Limpamos os campos input */
nome.text = "";
email.text = "";
login.text = "";
senha.text = "";
senha2.text = "";
};
nome.tabIndex = 1;
email.tabIndex = 2;
login.tabIndex = 3;
senha.tabIndex = 4;
enviar.tabIndex = 5;
limpar.tabIndex = 6;
/* Criamos um LoadVars que manda as informações ao PHP */
var mysql:LoadVars = new LoadVars();
/* Ao pressionar do botão enviar */
enviar.onPress = function() {
/* Verificamos se o campo nome foi preenchido */
if (nome.text == "") {
/* Mostramos a mensagem de erro */
status_txt.text = "Informe seu Nome";
/* Se não, verificamos se o campo email foi preenchido */
} else if (email.text == "") {
/* Mostramos a mensagem de erro */
status_txt.text = "Informe seu E-mail";
/* Se não, verificamos se o campo email contém os caracteres @ e . */
} else if (email.text.indexOf("@") == -1 || email.text.indexOf(".") == -1) {
/* Mostramos a mensagem de erro */
status_txt.text = "Informe corretamente seu E-mail";
/* Se não, verificamos se o campo comentario foi preenchido */
} else if (login.text == "") {
//Verifica se colocou um login
status_txt.text = "Informe seu login";
} else if (senha.text == "") {
//Verifica se pois senha
status_txt.text = "Informe uma senha";
} else if (senha2.text == "") {
//verifica se repetiu a senha para confirmação
status_txt.text = "Confirme a senha";
} else if (senha.text != senha2.text) {
//Verifica se senha1 e senha2 são iguais
status_txt.text = "As senhas devem estar iguais";
/* Se todos os campos estiverem corretos */
} else {
/* Mostramos o status de Enviando Mensagem */
status_txt.text = "Enviando Mensagem";
/* Mandamos ao PHP os valores */
mysql.nome = nome.text;
mysql.email = email.text;
mysql.login = login.text;
mysql.senha = senha.text;
/* Enviamos ao PHP os dados e carregamos as mensagens do PHP */
mysql.sendAndLoad("http://localhost/cadastro.php?action=cadastrar", mysql, "POST");
/* Ao carregar o arquivo PHP */
mysql.onLoad = function(ok) {
/* Se carregou sem problemas */
if (ok) {
/* Mostramos a mensagem vinda do PHP */
status_txt.text = this.mensagem;
/* Apagamos os campos input */
nome.text = "";
email.text = "";
login.text = "";
senha.text = "";
senha2.text = "";
}
};
}
};
/* Ao pressionar do Botão limpar */
limpar.onPress = function() {
/* Limpamos os campos input */
nome.text = "";
email.text = "";
login.text = "";
senha.text = "";
senha2.text = "";
};
Agora vamos ao arquivo que vai enviar esses dados para o mysql, nomeie-o de "cadastro.php"!
CÓDIGO
<?php
/* Conectamos ao MySQL */
$host = "localhost"; //Servidor do mysql
$user = "root"; //Usuario do banco de dados
$pass = "suasenha"; //senha do banco de dados
$db = "flash"; //banco de dados
mysql_connect($host, $user, $pass) or die (mysql_error());
mysql_select_db($db) or die (mysql_error());
$action = $_GET['action'];
/* Caso seja ação cadastrar */
switch ("$action") {
case 'cadastrar':
/* Variáveis vindas do Flash pelo método POST */
/* Codificamos para ISO-8859-1 */
$nome = (@$_POST['nome']);
$email = (@$_POST['email']);
$login = (@$_POST['login']);
$senha = (@$_POST['senha']);
/* Deixamos a data com o formato Dia/Mes/Ano */
$data = date("d/m/Y");
/* Verefica se já existe usuário */
$verifica = "SELECT login FROM banco WHERE login = '$login'";
$teste = mysql_query($verifica) or die ("Erro, tente novamente mais tarde!!!");
$vai = mysql_num_rows($teste);
/*Se já existir o usuário*/
if ($vai == 1){
/*Manda a mensagem de Erro para o Flash*/
print "&mensagem=Usuário já Existe";
/*Se não existe...*/
} else {
/* Inserimos os dados no Banco de Dados */
$cadastra = mysql_query("INSERT INTO banco (nome,email,login,senha) VALUES ('$nome','$email','$login','$senha')") or die(mysql_error());
/* Manda a mensagem de Cadastro efetuado com Sucesso para o Flash */
print "&mensagem=Cadastro enviado com sucesso&enviado=1";
}
break;
}
?>
/* Conectamos ao MySQL */
$host = "localhost"; //Servidor do mysql
$user = "root"; //Usuario do banco de dados
$pass = "suasenha"; //senha do banco de dados
$db = "flash"; //banco de dados
mysql_connect($host, $user, $pass) or die (mysql_error());
mysql_select_db($db) or die (mysql_error());
$action = $_GET['action'];
/* Caso seja ação cadastrar */
switch ("$action") {
case 'cadastrar':
/* Variáveis vindas do Flash pelo método POST */
/* Codificamos para ISO-8859-1 */
$nome = (@$_POST['nome']);
$email = (@$_POST['email']);
$login = (@$_POST['login']);
$senha = (@$_POST['senha']);
/* Deixamos a data com o formato Dia/Mes/Ano */
$data = date("d/m/Y");
/* Verefica se já existe usuário */
$verifica = "SELECT login FROM banco WHERE login = '$login'";
$teste = mysql_query($verifica) or die ("Erro, tente novamente mais tarde!!!");
$vai = mysql_num_rows($teste);
/*Se já existir o usuário*/
if ($vai == 1){
/*Manda a mensagem de Erro para o Flash*/
print "&mensagem=Usuário já Existe";
/*Se não existe...*/
} else {
/* Inserimos os dados no Banco de Dados */
$cadastra = mysql_query("INSERT INTO banco (nome,email,login,senha) VALUES ('$nome','$email','$login','$senha')") or die(mysql_error());
/* Manda a mensagem de Cadastro efetuado com Sucesso para o Flash */
print "&mensagem=Cadastro enviado com sucesso&enviado=1";
}
break;
}
?>
Agora vamos ao arquivo que fará o login:
Salve-o como index.fla! Coloque nele 2 input text, o primeiro com instância de login e o segundo "senha". Agora coloque um botão e instacie de "enviar" e coloque um campo de texto dinâmico novamente para o status, instancie de "status_txt".
No primeiro frame dele coloque as ações:
CÓDIGO
stop();
var mysql:LoadVars = new LoadVars();
/* Ao pressionar do botão enviar */
enviar.onPress = function() {
/* Verificamos se o campo nome foi preenchido */
if (login.text == "") {
/* Mostramos a mensagem de erro */
status_txt.text = "Informe seu login";
/* Se não, verificamos se o campo email foi preenchido */
} else if (senha.text == "") {
/* Mostramos a mensagem de erro */
status_txt.text = "Informe sua senha";
}else {
/* Mostramos o status de Enviando Mensagem */
status_txt.text = "Processando";
/* Mandamos ao PHP os valores */
/* O login digitado no campo nome */
mysql.login = login.text;
/* A senha digitada no campo senha */
mysql.senha = senha.text;
mysql.sendAndLoad("http://localhost/login.php?action=entrar", mysql, "POST");
/* Ao carregar o arquivo PHP */
mysql.onLoad = function(ok) {
/* Se carregou sem problemas */
if (ok) {
if (this.correto == 1){
gotoAndPlay(2);
/* Mostramos a mensagem vinda do PHP */
status_txt.text = this.mensagem;
}else{
status_txt.text = this.mensagem;
}
}
}
}
};
var mysql:LoadVars = new LoadVars();
/* Ao pressionar do botão enviar */
enviar.onPress = function() {
/* Verificamos se o campo nome foi preenchido */
if (login.text == "") {
/* Mostramos a mensagem de erro */
status_txt.text = "Informe seu login";
/* Se não, verificamos se o campo email foi preenchido */
} else if (senha.text == "") {
/* Mostramos a mensagem de erro */
status_txt.text = "Informe sua senha";
}else {
/* Mostramos o status de Enviando Mensagem */
status_txt.text = "Processando";
/* Mandamos ao PHP os valores */
/* O login digitado no campo nome */
mysql.login = login.text;
/* A senha digitada no campo senha */
mysql.senha = senha.text;
mysql.sendAndLoad("http://localhost/login.php?action=entrar", mysql, "POST");
/* Ao carregar o arquivo PHP */
mysql.onLoad = function(ok) {
/* Se carregou sem problemas */
if (ok) {
if (this.correto == 1){
gotoAndPlay(2);
/* Mostramos a mensagem vinda do PHP */
status_txt.text = this.mensagem;
}else{
status_txt.text = this.mensagem;
}
}
}
}
};
Nesse mesmo index.fla, adicione um segundo frame (nele coloque um "stop();"), no caso se o login for feito corretamente o flash te redireciona para ele, nele insira um campo de texto dinamico onde vai aparecer a mensagem de "Boas Vindas", instancie tambem de "status_txt".
Vamos ao php desse index.fla, salve como login.php:
CÓDIGO
<?php
/* Conectamos ao MySQL */
$con = mysql_connect("localhost","root","suasenha") or die(mysql_error());
/* Selecionando Banco de Dados*/
$db = mysql_select_db("flash",$con) or die(mysql_error());
$login = (@$_POST['login']);
$senha = (@$_POST['senha']);
$action = $_GET['action'];
/*Seleciona a ação*/
switch ("$action") {
/*Caso seja ação entrar*/
case 'entrar':
/*Procuramos pelos usuarios e senha vindo do Flash, para verificar se está correto e liberar o login*/
$query = "SELECT * FROM banco WHERE login = '$login' AND senha = '$senha'";
$result = mysql_query( $query ) or die ("Erro, tente novamente mais tarde!!!");
/*Verificando se o resultado está correto*/
$num = mysql_num_rows( $result );
/*Se estiver correto*/
if ($num == 1){
/*Manda a mensagem para o Flash*/
print "&mensagem=Bem-Vindo+$login&correto=1";
/*Se não for correto*/
} else {
/*Manda a mensagem de erro para o Flash*/
print "&mensagem=Você digitou errado ou não é cadastrado.";
}
break;
}
?>
/* Conectamos ao MySQL */
$con = mysql_connect("localhost","root","suasenha") or die(mysql_error());
/* Selecionando Banco de Dados*/
$db = mysql_select_db("flash",$con) or die(mysql_error());
$login = (@$_POST['login']);
$senha = (@$_POST['senha']);
$action = $_GET['action'];
/*Seleciona a ação*/
switch ("$action") {
/*Caso seja ação entrar*/
case 'entrar':
/*Procuramos pelos usuarios e senha vindo do Flash, para verificar se está correto e liberar o login*/
$query = "SELECT * FROM banco WHERE login = '$login' AND senha = '$senha'";
$result = mysql_query( $query ) or die ("Erro, tente novamente mais tarde!!!");
/*Verificando se o resultado está correto*/
$num = mysql_num_rows( $result );
/*Se estiver correto*/
if ($num == 1){
/*Manda a mensagem para o Flash*/
print "&mensagem=Bem-Vindo+$login&correto=1";
/*Se não for correto*/
} else {
/*Manda a mensagem de erro para o Flash*/
print "&mensagem=Você digitou errado ou não é cadastrado.";
}
break;
}
?>
Pra concluir monte sua tabela no banco de dados "flash"
CÓDIGO
CREATE TABLE `banco` (
`id` INT( 5 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`nome` VARCHAR( 50 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL ,
`email` VARCHAR( 50 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL ,
`login` VARCHAR( 10 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL ,
`senha` VARCHAR( 10 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL
) ENGINE = innodb;
`id` INT( 5 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`nome` VARCHAR( 50 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL ,
`email` VARCHAR( 50 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL ,
`login` VARCHAR( 10 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL ,
`senha` VARCHAR( 10 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL
) ENGINE = innodb;
Nessa tabela não colquei o campo data, mas ele pode ser posto. E optei pela collation latin1_swedish_ci por ter tido uns problemas com a utf-8.
Gostaria que o pessoal ajudasse a melhorar esse sistema, seria legal se pudesse ter um painel administrativo, para poder mudar o login, a senha ou qualquer campo.
Abraços

Help














