
		karvox
		
		(usa Ubuntu)
		
		Enviado em 25/01/2010 - 12:08h 
		Saudações pessoal,
Estou com um problema num sistema que estou desenvolvendo, faz tempo que não programo em PHP e gostaria que vocês vissem meu código e se possível me dar uma luz no que está acontecendo. Vou explicar:
 Tenho um aquivo com nome de usuário e senha "usuario:senha", tenho uma página em PHP que recebe dados de um formulário e captura o campo, ex: judson andrade borges, vai compor o login da seguinte forma, judson.borges, com um outro usuario "judson alex borges" ficaria judson.alex e assim decrementado os sobrenomes até chegar ao nome e dar a mensagem de usuario já cadastrado. Mas o código está inserido nomes repetidos abaixo segue o código análise:
function checkLogin($file,$formFieldName)
{	
		// Array contendo todas as palavras vindo do campo "Nome" e convertidas para minúsculas
		$a   = str_word_count(mb_strtolower($formFieldName), 1);
		$tam = count($a);
		$novo = ($a[0]) . "." . ($a[$tam - 1]); // Concatenando nome.ultimosobrenome
		
		// Checando arquivo de login ----------------------------------------------------------------------------
		
		$linhas = file($file);
		$getLogin = array();
		
		foreach ($linhas as $linha)
		{
			list($registro) = explode(':', $linha, -1);
			$getLogin[] = $registro;
		}
	
		//--------------------------------------------------------------------------------------------------------
			
		$temp = $novo;
		$x = 0;
		print "Esse aqui é o novo: " . $novo . "<br>";
			//Checagem de login repetidos 
			if (!empty($getLogin)) { 
				$x++;
				foreach ( $getLogin as $login ) {
					if ($novo == $login) { //Cria um login alternativo com o nome e um dos sobrenomes
						for ($i = 1; $i < $tam-1; $i++) {
						
							if ($novo == $login && $x < $tam) {
						
								$temp = ($a[0]) . "." . ($a[$tam - $i -$x]);
							} else {
								print "Nome já cadastrado no sistema."; 
								echo "<a href='cadastro.php' title='Cadastro' target='_self'>Cadastro</a>";
								exit;
							} 	// Fim ELSE
						} 		// Fim FOR
					} 			// Fim IF secundário
					
				} 				// Fim foreach
			} 					// Fim IF principal
			//print $temp;
		return $temp;
        //fclose($fp);
}
Então ele não está decrementando na ordem e inserindo o mesmo nome que já existe no arquivo.
Desde já agradeço a atenção de todos.