o PHP:Voce deve ter observado que ha partes entre aspas, alguns pontos no meio de algumas linhas e sinais de igual duplicados, certo? Certo. Vamos desvendar o porque de tudo isso:1 Texto entre aspas: quando precisarmos inserir uma parte de texto em algum campo ou, nesse caso, na linha de registro, essa parte devera ficar entre aspas. Quando formos inserir um numero puro ou os dados de uma outra variavel, nao colocaremos as aspas. Por isso \r\n esta entre aspas, pois, quebras de linhas sao inseridas na forma de texto. E por isso $user, $mail, etc, estao fora de aspas, pois sao dados que estao em outras variaveis existentes.2 Ponto: em PHP, quando precisarmos concatenar(juntar) textos com numeros e variaveis, utilizamos o ponto(.), o que equivale a dizer um texto & $uma_variavel por exemplo.3 Sinal de igual duplicado. Como ja dizemos anteriormente, um sinal de igual em programacao significa recebe. Quando queremos fazer uma comparacao entre duas coisas, usamos o sinal de igual duplicado para diferenciar do recebe. O contrario do sinal de ==(igual a) e !=(diferente de). Ha ainda o sinal triplo(===) que diferencia 0 como numeral de 0 como falso. Mais a frente veremos um exemplo disso.Uma outra dica: podemos encriptar a senha para dificultar que alguem saiba qual e caso tenha acesso ao arquivo txt. Existem varias funcoes nativas do PHP para fazer essa encriptacao que nao e bem uma encriptacao mas sim um hash. Para o nosso caso, podermos utilizar a funcao MD5. A forma de usa-la e muito simples:MD5($senha) ou hash("MD5", $senha)A segunda forma e melhor porque e compativel com todas as funcoes hashes enquanto que a maioria nao reconhece a primeira. Isso deve ser feito na passagem da senha na montagem da linha e nao no $_POST.fgets: captura o texto do arquivo txt. Essa funcao exige uma variavel para receber esse texto:codigo: 1: $linha = fgets($arquivo);Veja que foi passada a variavel $arquivo, pois usaremos o arquivo que abrimos no inicio utilizando essa variavel como nome. Essa funcao fica dentro de um loop while que fara ela ser executada linha a linha enquanto nao chegar o fim do arquivo. O que identifica o fim do arquivo e a funcao feof. Colocando o sinal de negacao(!) do qual ja falamos, dizemos para executar o loop enquanto nao for o fim do arquivo:codigo: 1: while(!feof($arquivo)){ 2: $linha = fgets($arquivo); 3: 4: if(strpos($linha, $user . ";") === 0){ 5: $mensagem = "Escolha outro nome de usuario."; 6: break; 7: } 8: }.csharpcode, .csharpcode pre{ font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em;}.csharpcode .lnum { color: #606060; }Explicando as linhas do codigo acima:1: Enquanto nao chegar o fim do arquivo...2: ...$linha recebera a proxima linha do arquivo que esta na variavel $arquivo.4: