..:: MX Studio Fóruns ::..: Montando um sistema de login - ..:: MX Studio Fóruns ::..

Jump to content

Publicidade




Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Montando um sistema de login Primeiros passos até algo complexo

#1 User is offline   McBAST 

  • Group: Membros
  • Posts: 505
  • Joined: 25-October 07

Posted 09 August 2008 - 07:38 PM

Olá pessoal!

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 = "";

};


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;
     }
?>


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;
}
}
}
}
};


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;
}
?>


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;


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
0

#2 User is offline   McBAST 

  • Group: Membros
  • Posts: 505
  • Joined: 25-October 07

Posted 22 November 2008 - 04:27 AM

Se alguém estiver interessado e manjar bastante php pode tentar estudar isso ai.

Abraços!
0

#3 User is offline   ubi_rj 

  • Group: Moderador Global
  • Posts: 2920
  • Joined: 29-June 07

Posted 22 November 2008 - 02:38 PM

Movido para o local correto: "Tutoriais e Artigos"

Legal sua iniciativa McBAST ! Valeu.

Abração !
0

#4 User is offline   fabricandosites 

  • Group: Membros
  • Posts: 5
  • Joined: 02-June 09

Posted 02 June 2009 - 11:11 PM

Interessante o tutorial

Rafael
Fabricando Sites
0

#5 User is offline   XdesignerX 

  • Group: Membros
  • Posts: 7
  • Joined: 01-September 09

Posted 02 March 2010 - 11:38 AM

muito bom, mais me diga uma coisa...
nao vai precisar de um arquivo de conexao com o DB não?

e outra coisa, esse sistema funciona off? no wamp mesmo...

vlw
0

#6 User is offline   Natan 

  • Group: Moderador Global
  • Posts: 7350
  • Joined: 28-February 04

Posted 06 March 2010 - 05:21 PM

Não precisa pois no próprio arquivo PHP já existe as linhas que fazem a conexão com o banco de dados.

Sobre sua segunda pergunta, o sistema pode funcionar localmente sim, desde que tenha um servidor web instalado, assim como o PHP e o banco de dados.

[]s
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic



Publicidade




1 User(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)