Se o valor de usuario da variavel $user estiver no inicio da linha...5: a variavel $mensagem recebera o texto Escolha outro nome de usario.6: Interrompe o loop caso o nome de usuario seja encontrado na base de dados txt. Por que devemos usar o break para interromper o codigo se o nome de usuario for encontrado? Imagine que sua base de dados tenha 500.000 linhas e o nome de usuario seja encontra na linha numero 200. O codigo sera finalizado bem mais rapido se for interrompido na linha 200.7: Fim da condicional If.8: Fim do loop While.O codigo acima funcionara corretamente desde que nao haja diferenca de maiusculas e minusculas entre o user digitado e o da linha da base de dados. O php diferencia maiusculas e minusculas. Isso significa que para ele user e diferente de User e de uSer. Dessa forma, precisaremos igualar as duas partes, colocando tudo em minusculas ou maiusculas para comparar com eficiencia. Podemos fazer isso utilizando a funcao strtolower:if(strpos(strtolower($linha), strtolower($user) . ";") === 0)Se voce bem observou, deve ter visto que estamos concatenando o nome de usuario com o ponto e virgula. Por que estamos fazendo isso? Para garantir que nao havera erros de interpretacao. Um exemplo de linha:criquiocalavera;criquio@prov.com;senhaSe um usuario tentar cadastrar criquio e nao tiver o ponto e virgula como final, a validacao nao deixara prosseguir, pois criquio foi encontrado. Entao, colocamos o ponto e virguala como final para fazer essa diferenciacao, ficando assim criquio; e criquiocalavera;.Verificando a validacao para gravar ou nao o registroAgora que fizemos todas as validacoes, iremos finalizar o processo gravando o registro ou exibindo uma mensagem de erro. Como dissemos antes, o que ira garantir se houve ou nao erros sera a variavel $mensagem. Caso nao tenha nada nela, e porque nao foi encontrado nenhum erro e, portanto, nenhuma mensagem foi recebida por essa variavel: 1: if($mensagem == ""){ 2: $escreve = fwrite($arquivo, $dados); 3: if(intval($escreve) > 0){ 4: $mensagem = "Seus dados foram gravados com sucesso."; 5: }else{ 6: $mensagem = "Ocorreu um erro na gravacao dos dados."; 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; }O bloco acima esta dizendo que se a variavel $mensagem estiver vazia, sera criada mais uma variavel de nome $escreve. Essa variavel utilizara a funcao fwrite para gravar o registro no arquivo de texto. Essa funcao tem os parametros a saber:1 Nome do arquivo, no qual foi passado $arquivo, que e a variavel que guarda o nome do arquivo;2 Texto a ser gravado. No nosso caso, passamos a variavel que montamos com a linha que contem os dados do registro $dados.A seguir usarmos um metodo para verificar se a linha foi gravada com