Conectar-se
Quem está conectado
26 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 26 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 08/05/2008
Número de Mensagens : 36
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 7

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://www.deploy.net.br

Curso GM Online - 5º Lição - 3º Parte - Banco de Dados

em Ter 03 Fev 2009, 01:09
Reputação da mensagem: 100% (2 votos)
Começo esta terceira Parte com uma boa notícia. Encontrei uma versão de patch estável para o Game Maker 7. Com isso, poderei dar continuidade ao curso online usando ele, para aqueles que o tem, com certeza será maravilhoso, para aqueles que usam o 6, não se desanimem, pois a programação será a mesma para os dois.

Na lição passada, fizemos uma tela de login, usando scripts e uma validação se os campos foram preenchidos.
Hoje, faremos a parte mais interessante e com certeza a mais esperada por todos.
Usando a GMSQL, conectaremos na base MySQL, ensinada como configurar e criar a tabela de login na primeira parte desta quinta aula, Validaremos a existência do Login e senha.

De início, baixe a DLL e o pacote de scripts Aqui.
Vamos aproveitar o exemplo feito na aula passada. Se você não o construiu, pare, volte na aula e o faça, pois ele será necessário aqui.
1 º passo importe o script GMSQL.gml para o projeto. Eu aconselho a criar uma pasta para os mesmos(no GM7 esse passo da pasta é automático). Depois, Copie as 3 Dlls que o acompanham para o mesmo diretório do projeto. Segue como ficará dentro do seu projeto e na pasta dele:




O que faremos agora será executar os seguintes passos:

  • Ao Clicar no botão de login validar se Login e senha foram preenchidos
  • Se sim, Instaciaremos a GMSQL.
  • Faremos conexão com a mesma.
  • Passaremos a Query(Linha SQL) para o banco executaremos.
  • Se o retorno for verdadeiro
  • Daremos uma mensagem de seja bem vindo ao usuário
  • Se o retorno for falso
  • Daremos uma mensagem de Login ou senha inválidos
  • Se não, Daremos uma mensagem de Falha de Conexão.

Vamos começar. Crie um script de nome scr_login. Nele, adicione o seguinte Código:
Código:
//capturamos os valores passados
login = argument0;
senha = argument1;
//montamos a Query
Query = "SELECT cod_user FROM tb_user WHERE nom_user = '"+login+"' AND cod_nivel = "+senha;
//Tentamos instanciar a DLL
if gmsql_init(){
    //Efetuamos a Conexão com o Banco de dados
    if gmsql_connect('Localhost:3306','root','root','db_game'){
        //Validamos se a Query foi executada
        if gmsql_query(Query)=1{
            //Guardamos o resultado
            gmsql_storeresult();
            //Validamos se houve retorno do valor pedido
            if (gmsql_getvaluexy(0,0)) != ""{
            //Fechamos a Conexão e Desinstanciamos a DLL.
                gmsql_close();
                return true;
            }
            gmsql_close();
            return false;
        }
        gmsql_close();
        return false;
    }
}
MAS O QUE FOI FEITO AQUI??
Lembra-se da 1º parte desta Aula, onde fizemos uma query diretamente no SQL Yog? Nela fizemos uma query simples, usando * que indica ALL, todos os campos da tabela.
Agora, nossa query possui duas peculiaridades:

  • Pedimos no Select apenas o campo Cod_user


  • Passamos como parâmetro(Clausula WHERE) o nome de usuário e a senha. Estaremos usando o Cod_nivel para isso, mas nada impede a criação de um campo senha que seja alfa-numérico.
Após isso, observe que se o script de inicialização da GMSQL retornar true entramos na conexão.
No script de conexão, passamos IP:Porta, usuário,Senha,Base. Se este também retornar true, passamos para o script de Query, onde passamos como parâmetro nosso SQL montado lá em cima.
Este por sua vez, deve retornar 1. Retornando, validamos se houve retorno de dados. Se sim, devolvemos true na função, caso contrário devolvemos false.
Agora, iremos aplicar o script. Abra o objButton, construído na lição passada. Se você se lembra bem, ele possui o seguinte script no evento Draw:
Código:

if(button(x,y,"Login")){
    if global.login == "" {
        show_message("Preencha seu Login.")
        exit;
    }
    if global.senha == "" {
        show_message("Preencha sua Senha.")
        exit;
    }
   
}
Iremos complementá-lo, de forma a executar nosso scr_login. Com certeza, você já sabem como fazer o mesmo. Aqui vai o script completo:
Código:

if(button(x,y,"Login")){
    if global.login == "" {
        show_message("Preencha seu Login.")
        exit;
    }
    if global.senha == "" {
        show_message("Preencha sua Senha.")
        exit;
    }
    if scr_login(global.login,global.senha){
        show_message("Seja bem vindo.")
    }
    else{
        show_message("Usuário ou senha inválidos.")
    }
   
}
Observe que ficou bem simples. Uma das grandes vantagens de usarmos scripts da pasta de Scripts é que nosso código dentro dos objetos vai ficando limpo, além de reaproveitarmos o mesmo se necessário.

Uma outra peculiaridade são os parâmetros na função gmsql_connect. Observe que passamos para ele Localhost:3306. Esta configuração de IP:Porta pode levar qualquer endereço e qualquer porta, fazendo com que seu banco MySQL esteja em qualquer lugar, e mesmo assim você terá acesso a ele, seja diretamente como fizemos aqui, ou através do Server do jogo.

Se tudo estiver OK na sua máquina (MySQL Instalado, Configurações feitas, Tabela Criada, Registro Inserido) Basta executar o jogo e tentar logar.
Se você digitar corretamente os dados( Lembrando que nome, Nome e NOME dá na mesma para o banco) deverá mostrar a mensagem de sucesso e, caso digitar errado, mostrar a mensagem de falha.

Para quem achou que seria algo completamente impossível, aí está. Um Login que valida se digitou, conecta-se a uma base MySQL e valida se o login existe na base.

Eu tenho certeza que você está pensando: “ E agora??”

Bem, agora tudo começa. Veja o que já estudamos: O uso da SOC, a criação de Clients de movimento, o uso da GMSQL, uma criação de Login. Veja como se encaixarmos as peças, estamos indo em direção a um game Online.

Na Próxima lição: Começaremos a construir nosso Próprio Server e aprenderemos mais sobre o uso da GMSQL.

Até lá.


Última edição por joaoneto em Qua 04 Fev 2009, 14:16, editado 1 vez(es)
avatar
Data de inscrição : 04/02/2009
Número de Mensagens : 108
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1

Prêmios
   :
   : 1
   :
Ver perfil do usuário

Valew

em Qua 04 Fev 2009, 10:48
AEEEE valew cara estava esperando por essa aula a 3 dias.
valew mesmo. lol!
avatar
Data de inscrição : 16/01/2009
Número de Mensagens : 44
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0

Prêmios
   :
   :
   :
Ver perfil do usuário

Re: Curso GM Online - 5º Lição - 3º Parte - Banco de Dados

em Qua 04 Fev 2009, 14:15
lindo, esperando pelo Resto Happy

flwss
Data de inscrição : 27/03/2009
Número de Mensagens : 1
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Re: Curso GM Online - 5º Lição - 3º Parte - Banco de Dados

em Sab 28 Mar 2009, 00:07
Hey joãoneto muinto fera seus tuto parabêns kra....
Mais tipo não to conseguino baxa o pacote se tiver como
você coloka em outro servidor ficaria muinto agradecido kra...
haaa e de novo vlw pelos tutos se é fera....
Thx,T+
avatar
Data de inscrição : 07/11/2008
Número de Mensagens : 521
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0

Prêmios
   :
   :
   : 1
Ver perfil do usuáriohttp://wac2007.blogspot.com/

Re: Curso GM Online - 5º Lição - 3º Parte - Banco de Dados

em Qua 22 Jul 2009, 16:16
As Aulas são extremamente boas entretanto parece que parou por aki neh =/
avatar
Data de inscrição : 14/11/2009
Número de Mensagens : 6
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Re: Curso GM Online - 5º Lição - 3º Parte - Banco de Dados

em Dom 15 Nov 2009, 17:30
eu jah consegui resolver, eh que eu sou meui burro mesmo

na linha

if gmsql_connect('Localhost:3306','root','root','db_game'){

eu eskeci de colocar a minha senha do segundo root

por isso nao conectava

Editado por CPinheiro: não faça mais double posts, ok?
Avisado.
avatar
Data de inscrição : 02/10/2009
Número de Mensagens : 2227
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 52

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Curso GM Online - 5º Lição - 3º Parte - Banco de Dados

em Qua 20 Jan 2010, 03:10
Alguem ajuda? o Joao não vai responder...

Erro:

___________________________________________
ERROR in
action number 1
of Draw Event
for object objButton:

Error in code at line 12:
if scr_login(global.login,global.senha){

at position 9: Expression expected


Eu ja sei o que é.. só que eu quero usar um servidor externo e num está a dar =/
avatar
Data de inscrição : 28/01/2010
Número de Mensagens : 33
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Re: Curso GM Online - 5º Lição - 3º Parte - Banco de Dados

em Dom 31 Jan 2010, 01:13
Ta dando um problema igualzinho ao seu aqui Biel, acabei de ler o post do zurao, e eu nao sabia que era pra trocar "root" pela sua senha o.o
vou fazer isso, kem sabe o problema resolve?? tente tbm Happy
se nao funcionar eu edito ;)
flws!

Edit: nao resolveu =/
se alguem souber solucionar esse probleminha chato, ajuda nois aew! grato
avatar
Data de inscrição : 07/02/2010
Número de Mensagens : 47
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Re: Curso GM Online - 5º Lição - 3º Parte - Banco de Dados

em Qui 18 Fev 2010, 19:35
o joao neto como e o nome do procimo tutorial eu nao to axando
avatar
Data de inscrição : 14/05/2009
Número de Mensagens : 135
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Curso GM Online - 5º Lição - 3º Parte - Banco de Dados

em Sab 23 Out 2010, 18:56
Nossa João Neto parabéns novamente amigo...

Aqui deu tudo certinho.. Deu pra conectar no banco de dados e tudo mais Happy...



Uploaded with ImageShack.us

Pra galera que quando ta dando erro ao clicar no botão Login (Da erro no script "src_login" nesta linha:

if gmsql_connect('Localhost:3306','root','root','db_game'){

no lugar do primeiro "root" você deve colocar o nome de usuário que você usou quando configurou seu banco de dados, e no segundo sua senha.

Detalhe: Não sei se tem algo a ver.. (Acredito que sim o.O) chequem se o Firewall está desabilitado e se a porta 3306 tambem... Qualquer coisa posso tentar ajudar..

E mais uma vez brigadão João Happy
avatar
Ranking : Nota D
Notas recebidas : D-C
Data de inscrição : 10/10/2010
Número de Mensagens : 582
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Curso GM Online - 5º Lição - 3º Parte - Banco de Dados

em Sab 06 Nov 2010, 11:43
Num sei se to ressucitando o topico ou nao mas se tiver desculpa
é q tenho uma duvida
Olha o erro que ta dando:

___________________________________________
FATAL ERROR in
action number 1
of Draw Event
for object objButton:

COMPILATION ERROR in code action
Error in code at line 11:
if scr_login(global.login,global.senha){
^
at position 9: Unknown function or script: scr_login



Mas eu fiz o scrpt loguin e nao to entendo pq ta dando unknown :/
avatar
Ranking : Sem avaliações
Data de inscrição : 11/10/2009
Número de Mensagens : 2184
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 106

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Curso GM Online - 5º Lição - 3º Parte - Banco de Dados

em Sab 06 Nov 2010, 12:31
GMLucas escreveu:Num sei se to ressucitando o topico ou nao mas se tiver desculpa
é q tenho uma duvida
Olha o erro que ta dando:

___________________________________________
FATAL ERROR in
action number 1
of Draw Event
for object objButton:

COMPILATION ERROR in code action
Error in code at line 11:
if scr_login(global.login,global.senha){
^
at position 9: Unknown function or script: scr_login



Mas eu fiz o scrpt loguin e nao to entendo pq ta dando unknown :/
Não há problema em ressucitar tutoriais, pois o usuário pode estar com dúvidas, então aí é só perguntar.

---------

No código, você colocou o mesmo nome que você colocou quando criou o script? Porque por exemplo, quando você criou você pode ter colocado scr_loguin, e no código colocou scr_login. Dê uma olhada nisso, qualquer coisa você avisa.

Abraços,
~Markituh.
avatar
Ranking : Nota D
Notas recebidas : D-C
Data de inscrição : 10/10/2010
Número de Mensagens : 582
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Curso GM Online - 5º Lição - 3º Parte - Banco de Dados

em Sab 06 Nov 2010, 19:38
Po mano brigadooooooooo
Eu nao tinha visto éra isso msm vlw tava scr_loguin
e no code scr_login
Edit:
agora ta dando erro em otra coisa:

___________________________________________
ERROR in
action number 1
of Draw Event
for object objButton:

Error in code at line 11:
if scr_loguin(global.login,global.senha){
^
at position 9: Expression expected
avatar
Ranking : Sem avaliações
Data de inscrição : 11/10/2009
Número de Mensagens : 2184
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 106

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Curso GM Online - 5º Lição - 3º Parte - Banco de Dados

em Qua 10 Nov 2010, 15:42
Hmm...

Código:
Erro no código na linha 11:
if scr_loguin(global.login,global.senha){
^
na posição 9: Expressão esperada
Dá erro exatamente entre o L e o O de scr_loguin. Não sei por que diz "expressão esperada" e dá erro... Sinceramente não sei o que está acontecendo, vo estudar mais profundamente esse "erro". Enquanto isso, talvez alguns de nossos colegas saibam a resposta.

avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 07/09/2010
Número de Mensagens : 1400
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 21

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Curso GM Online - 5º Lição - 3º Parte - Banco de Dados

em Qua 10 Nov 2010, 15:44
acho que é porque "loguin" não tem U oO
avatar
Ranking : Sem avaliações
Data de inscrição : 11/10/2009
Número de Mensagens : 2184
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 106

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Curso GM Online - 5º Lição - 3º Parte - Banco de Dados

em Qua 10 Nov 2010, 16:23
The Games Never Finish... escreveu:acho que é porque "loguin" não tem U oO
Nada a ver companheiro... A pessoa pode escrever o nome que quiser no script. É algum erro meio que "louco" que o GM alertou.
avatar
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 11/07/2010
Número de Mensagens : 149
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 5
Ver perfil do usuário

Re: Curso GM Online - 5º Lição - 3º Parte - Banco de Dados

em Qua 10 Nov 2010, 17:49
@Markituh escreveu:
The Games Never Finish... escreveu:acho que é porque "loguin" não tem U oO
Nada a ver companheiro... A pessoa pode escrever o nome que quiser no script. É algum erro meio que "louco" que o GM alertou.
é ai que você se engana!
o nome do script tem que ser exato para que todos os códigos funcionem...
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 07/09/2010
Número de Mensagens : 1400
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 21

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Curso GM Online - 5º Lição - 3º Parte - Banco de Dados

em Qua 10 Nov 2010, 17:55
@Markituh escreveu:
The Games Never Finish... escreveu:acho que é porque "loguin" não tem U oO
Nada a ver companheiro... A pessoa pode escrever o nome que quiser no script. É algum erro meio que "louco" que o GM alertou.


É porque, tipo, se você colocar num código o script ''scr_loguin'' e o nome do script é "scr_login", vai dar errado, mas isso tu ja deve saber.
avatar
Ranking : Sem avaliações
Data de inscrição : 11/10/2009
Número de Mensagens : 2184
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 106

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Curso GM Online - 5º Lição - 3º Parte - Banco de Dados

em Qua 10 Nov 2010, 18:26
Cara eu sei, mas me refiro ao outro erro que deu, e não ao primeiro erro. E eu dei quase essa resposta para ele. Do you unsderstand?
avatar
Ranking : Nota D
Notas recebidas : D-C
Data de inscrição : 10/10/2010
Número de Mensagens : 582
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Curso GM Online - 5º Lição - 3º Parte - Banco de Dados

em Qui 25 Nov 2010, 15:43
agora ta dando isso

___________________________________________
ERROR in
action number 1
of Draw Event
for object objButton:

Error in code at line 11:
if scr_login(global.login,global.senha){
^
at position 9: Expression expected




Galera, responde ae porfavor, to tentando aprender



_________________
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum