Siga-nos em...
Follow us on Twitter Follow us on Facebook Watch us on YouTube
Registro


Alpha Servers
Resultados 1 a 3 de 3
  1. #1

    Avatar de BrokeN
    Data de Ingresso
    May 2010
    Localização
    Dourados, MS
    Posts
    65
    Agradecido
    1
    Peso da Avaliação
    8

    Padrão [TUTORIAL]Corrigindo BUG do cadastro!

    Bom galera, vendo esses Web Masters amadores cometerem sempre o mesmo erro, resolvi criar esse tutorial com o intuito de ajudar a solucionar o problema na hora de fazer o cadastro no site! Ele sempre cadastra a primeira conta normal, ai a segunda conta ele já dá o erro de duplicação...

    Pois bem...

    Para evitar aquele erro faça as seguites modificações:

    1° Abra o Enterprise Manager, e selecione a database MuOnline. Clique com o botão direito do mouse e vá em "Design table"(Como na imagem a baixo!).


    2° Após aberto você deverá visualizar a seguinte tela:


    3° Para corrigir o problema você deverá fazer os seguintes passos:

    3.1- Selecione o campo Memb___id e clique na chavinha lá em cima, deixando-o assim como Primary Key(Chave primária), isso evita que as contas sejam duplicadas!
    3.2- Selecione o campo Memb__guid, e procure lá em baixo, por 'Identity'(destacado em vermelho na imagem anterior), vai estar No, troque para Yes, automaticamente os campos 'Identity Seed' e 'Identity Increment' passarão a ter o valor '1'!

    4° Após as modificações sua tela do enterprise manager deverá estar do seguinte modo:


    Caso esteja diferente, volte no inicio do tutorial, e reveja os passos ^^

    Bom, por enquanto foi feita a modificação no SQL, agora vamos modificar a página de cadastro!

    5° Abra o arquivo de cadastro com um editor de texto qualquer(Dreamweaver, Bloco de notas, Notepad++, PHPEditor o de sua preferencia).

    6° Encontre a query de cadastro(em alguns arquivos estarão lá no final, em outros estarão em outro arquivo, vai depender do seu site!), ela estará mais ou menos desse modo:
    Exemplo:
    "INSERT INTO MEMB_INFO(memb__guid,memb___id,memb__pwd) VALUES('1','$login','$senha')";
    Em outros casos:
    "INSERT INTO MuOnline.dbo.MEMB_INFO(memb__guid,memb___id,memb__ pwd) VALUES('1','$login','$senha')";

    Enfim, não importa o modo em que ele esteja, o importante é entender oque está entre parenteses '(' ')'!

    Explicando para um melhor entendimento:

    Dentro dos primeiros parenteses , sempre será as colunas do SQL(memb__guid,memb___id,memb__pwd), e dentro do segundo parenteses - após o VALUES - sempre terá os valores a serem inseridos nas colunas, sempre seguindo a ordem que foi colocada nos primeiros parenteses!

    Para corrijir esse erro leia o 7° passo:

    7° O que deveremos mudar aqui neste arquivo é retirar o memb__guid de dentro do primeiro parenteses(removendo a virgula que vem na frente dele), e remover o valor referente a ele dentro do segundo parenteses(no exemplo o '1', removendo as aspas e a virgula).
    Nosso exemplo ficaria assim:
    "INSERT INTO MEMB_INFO(memb___id,memb__pwd) VALUES('$login','$senha')";
    Em outros casos:
    "INSERT INTO MuOnline.dbo.MEMB_INFO(memb___id,memb__pwd) VALUES('$login','$senha')";

    8° Agora teste o seu cadastro(na maioria das vezes irá funcionar, porém há excessões).

    9° (Caso tenha dado certo não precisa continuar seguindo esse tutorial, basta clicar em agradecer, e ler as observações lá no final xD) Deu um erro diferente, contendo na mensagem algo como: 'INDENTITY_INSERT', calma, não se desespere, tenho a solução também. Procure no mesmo arquivo PHP, editado anteriormente, algo com:
    'SET IDENTITY_INSERT MEMB_INFO ON'
    Assim que achar você tem 4 soluções a fazer:
    Primeira: selecione a linha inteira(desde o primeiro caracter, até o ';'(ponto e virgula)), e apague a linha inteira;
    Segundo: Comente a linha, coloque o mouse no inicio da linha e comente ela(Coloque duas barras '//')
    Terceiro: Comente a linha de outro modo, no inicio da linha coloque uma barra e um asterisco(/*) e no final(depois de todo o código), coloque um asterisco e uma barra(*/)ATENÇÃO! Para iniciar o comentário deve-se colocar /* e para terminar */
    Quarto: Troque ON para OFFATENÇÃO! Não testei esse modo, se não funcionar me avisem que eu removo do tutorial!

    10° Teste o cadastro, se der certo, basta agradecer! Se não der, deixem suas dúvidas abaixo, informando a mensagem do erro que analisarei e verei aonde está errado!

    OBS: Em alguns sites você poderá encontrar desse modo as QUERY:
    $query = COMANDO AQUI!;
    $msquery = mssql_query($query);

    Ou seja, quando você acharem a query de cadastro, e a ultima informada:
    SET IDENTITY_INSERT MEMB_INFO ON
    Verifiquem se na frente dela tem algo com 'mssql_query', se tiver sem problemas, se não tiver, olhem oque vai estar na frente do $ e procurem no arquivo alguma coisa com: mssql_query($texto_que_voce_viu); Ai remova ambas as linhas(ou se preferir, remova só a que tem o msql_query)...

    Bom galera, é isso, espero que resolva o problema da maioria, quem não conseguir solucionar só postar uma mensagem...

    Créditos:
    Imagens: Rafael(Broken - Mustrike - eu mesmo ^^);
    Texto: Rafael(Broken - Mustrike - eu mesmo ^^);

    Se forem copiar, favor, manter os créditos pessoal, vamos ser honesto.

    PS.: Tópico copiado para a sessão Tutoriais, na área MuOnline > [MU]WebSites pois a maioria não olha na sessão MSSQL, por isso tópico copiado para cá, e mantido lá!
    Última edição por BrokeN; 24-05-2010 às 04:39 PM.

  2. #2

    Avatar de NaM4
    Data de Ingresso
    Sep 2009
    Localização
    mu
    Posts
    78
    Agradecido
    37
    Agradeceu
    7
    Peso da Avaliação
    9

    Padrão

    ótimo tutorial, e eu recomendo nao só essa coluna ter uma primary key

    mas todas terem, ter um banco indentado corretamente e bem distribuido

    você ganha em tudo, resolve problemas, poupa de bugs e com certeza há um almento significativo em processamento, ou seja, processa mto mais rapido tanto site como BrokeN falou como Servidor!


    abraços

  3. #3

    Avatar de BrokeN
    Data de Ingresso
    May 2010
    Localização
    Dourados, MS
    Posts
    65
    Agradecido
    1
    Peso da Avaliação
    8

    Padrão

    @Nam4

    Então, meio que corrigindo seu post, você quis dizer que é bom ter todas as tabelas com primary key neh, pq em uma tabela só da para ter 1 coluna...

    E realmente, melhora, diminui os BUGs, e é sempre bom ter uma segurança a mais, no site que estou fazendo no cadastro ele verifica se o usuário já esta cadastrado(assim q ele termina de digitar o login e parte pra senha), e dpois de en***** o formulário ele verifica novamente se o usuário já ta cadastrado, e caso de um BUG no php(muito dificil, porém não é impossivel), e acabar passando um usuário já cadastrado, com o campo em primary key, ele irá retornar o erro e não cadastrará...

    Ou seja, uma outra forma de segurança...

 

 

Informações de Tópico

Usuários Navegando neste Tópico

Há 1 usuários navegando neste tópico. (0 registrados e 1 visitantes)

Tópicos Similares

  1. |Tutorial| Corrigindo erro-l1 socket
    Por hugodrpc no fórum Servers
    Respostas: 0
    Último Post: 29-12-2011, 02:13 PM
  2. |Tutorial| Corrigindo Item Branco em Versões Antigas
    Por Cøłєridgє no fórum Tutoriais
    Respostas: 0
    Último Post: 30-04-2011, 04:51 PM
  3. |Tutorial| Corrigindo Item marca de GM
    Por Nichollas Ed. no fórum GC | Tutoriais
    Respostas: 0
    Último Post: 31-03-2011, 12:26 PM
  4. |Tutorial| Corrigindo a lentidão do cursor no WYD
    Por thergus no fórum WYD | Tutoriais
    Respostas: 0
    Último Post: 21-01-2011, 11:26 AM
  5. |Tutorial| Corrigindo BUG do cadastro!
    Por BrokeN no fórum MSSQL
    Respostas: 0
    Último Post: 24-05-2010, 04:32 PM

Marcadores

Permissões de Postagem

  • Você não pode iniciar novos tópicos
  • Você não pode enviar respostas
  • Você não pode enviar anexos
  • Você não pode editar suas mensagens
  •