O endpoint funciona quando é digitado manualmente e falha quando é carregado de um arquivo. Antes de trocar a senha, inspecione como o registro é lido.

Um arquivo orientado a linhas tem um delimitador. Se o analisador deixar sua quebra de linha final no último campo, a credencial passada ao cliente pode diferir da que você pretendia. O CRLF no estilo Windows torna dois bytes dignos de verificação.

O file() do PHP oferece suporte a FILE_IGNORE_NEW_LINES para ler registros sem o delimitador de fim de linha. Use o comportamento adequado ao formato documentado do arquivo.

Cuidado com a correção posterior popular: aparar cada campo. Espaços podem ser caracteres reais da senha. Remover todos os espaços iniciais e finais altera a credencial em vez de apenas remover um terminador de registro.

Defina também os separadores. Um formato informal delimitado por dois-pontos pode ficar ambíguo quando a senha ou um endereço IPv6 contém dois-pontos. Leia o registro conforme esse formato, preserve os bytes da senha pretendidos e só então codifique os componentes para uma URL de endpoint se necessário.

Para diagnóstico, compare comprimentos ou valores de teste controlados não secretos. Imprimir a senha real ou uma URL completa com credenciais cria outro problema enquanto se resolve um erro de analisador muito pequeno.

Artigos relacionados