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 em Memb_info 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. EDIT Se alguem discordar de algo que fala no tutorial, quiser incrementar, só deixar um POST q eu irei analisar e arrumarei no tutorial...
Última edição por BrokeN; 24-05-2010 às 06:34 PM. Razão: Added nome da tabela Memb_info no primeiro iten, tava faltando
Há 1 usuários navegando neste tópico. (0 registrados e 1 visitantes)
Regras do Fórum