Alteração da funcionalidade variável do formulário ColdFusion 10 relacionada ao caso de variáveis
-
12-12-2019 - |
Pergunta
Estamos apenas pensando em portar um script legado para o ColdFusion 10 e acredito que encontrei um bug/mudança na funcionalidade relacionada ao uso de vários campos de formulário usando o mesmo nome.No ColdFusion 9, eles seriam anexados à variável relevante com vírgulas, mas no ColdFusion 10, se o caso das variáveis for diferente, um campo substituirá o outro.
O seguinte código de teste:
<form action="index2.cfm" method="post">
<input type="hidden" name="test" value="1" />
<input type="hidden" name="TEST" value="0" />
<input type="submit" />
</form>
<cfdump var="#form#">
Produz no ColdFusion 9
TEST = 1,0
No ColdFusion 10:
TEST = 0
Alguém mais experimentou esse comportamento e sabe se é um bug ou uma funcionalidade pretendida?Eu sei que o aplicativo não deveria usar o mesmo nome de variável em casos diferentes, então vou tentar mudar isso, mas gostaria de saber se alguém tinha mais informações sobre o problema.
Editar
Enviei esse bug para a Adobe em https://bugbase.adobe.com/index.cfm?event=bug&id=3298179
Solução 2
Este bug parece ter sido confirmado pela Adobe em como Erro #3298179.É relatado como corrigido na compilação 283412 e atualmente em fase de testes.Atualizarei esta resposta com as informações relevantes do hotfix assim que for divulgada publicamente.
Outras dicas
@Russ
Esse recurso é, na verdade, apenas um recurso.Acredito que você não entendeu na postagem acima que especificar o mesmo nome de campo com maiúsculas e minúsculas não passa mais em um resultado de lista.
Uma das principais coisas para as quais eu e muitos usamos essa funcionalidade no passado são as caixas de seleção.Um grupo pode ter o mesmo nome para que sua validação seja fácil, mas com valores diferentes, para que o CF possa processar quais foram marcados antes do envio do formulário (obviamente, os itens desmarcados não são passados para a lista).
Esse "recurso" existe pelo menos desde o CFMX 6.1.Eu escrevi sobre isso em 2008: http://cfruss.blogspot.com/2008/01/passing-multiple-same-named-arguments.html