O punto final funciona cando se introduce a man e falla cando se carga desde un ficheiro. Antes de rotar o contrasinal, inspecciona como se le o rexistro.

Un ficheiro orientado a liñas ten un delimitador. Se o analizador deixa o seu salto de liña final no último campo, a credencial que se pasa ao cliente pode diferir da que pretendías. O CRLF ao estilo de Windows fai que pague a pena comprobar dous bytes.

O file() de PHP admite FILE_IGNORE_NEW_LINES para ler rexistros sen o seu delimitador de final de liña. Usa o comportamento axeitado ao formato documentado do ficheiro.

Ten coidado coa popular corrección posterior: recortar cada campo. Os espazos poden ser caracteres reais do contrasinal. Eliminar todos os espazos iniciais e finais cambia a credencial en vez de só quitar un terminador de rexistro.

Define tamén os separadores. Un formato informal delimitado por dous puntos pode volverse ambiguo cando o contrasinal ou un enderezo IPv6 contén dous puntos. Le o rexistro segundo ese formato, conserva os bytes de contrasinal previstos e só entón codifica os compoñentes para un URL de punto final se é necesario.

Para o diagnóstico, compara lonxitudes ou valores de proba controlados non secretos. Imprimir o contrasinal real ou un URL completo con credenciais crea outro problema mentres se resolve un erro de analizador moi pequeno.

Artigos relacionados