Preplexidade HTML

D X

Membro
Pessoal, se alguém me puder explicar o porquê desta aberração ( e como contorná-la, já agora ), agradeço. Eis o código ( seleccionem para ver tudo sff ):

PHP:
<?php var_dump($_POST); ?>

<form name="n" method="post">
<input name="s.qq">
<input type="submit">
</form>

O resultado do envio do POST?:

array(1) { ["s_qq"]=> string(3) "sdf" }

Pois é, amigos: Algures entre o envio da info pelo browser e o interpretador do PHP (será que com ASP ou PERL tb acontece isto?), há uma conversão do ponto por um sublinhado ( para os menos atentos, "s.qq" ficou "s_qq" ).

Isto é puro CAOS! Imprevisível, incompreensível, inexplicável... ou não é?
 
Última edição:
Esse assunto dos caracteres serem mudados pelo php já foi discutida algures por aqui. Os caracteres é que eram outros.
A ver se encontro a outra thread.
 
Acho que te referes a uma thread que eu próprio coloquei antes :P
Referia-se a um problema com as aspas enviadas por campos hidden.

Este é um problema diferente, embora tenha as mesmas causas: Posts, HTML e relativas incongruências...
 
Vocês são é pobres e mal agradecidos, isso a ser bem feito o PHP estoirava-te com uma mensagem do género:
Parse error: syntax error, unexpected '='

O "." em PHP é o caracter de concatenação, o PHP para não estoirar, é amigo (demais .. pelos vistos :p ) e converte-te o ponto por um underscore para na realidade poderes utilizar a variável pois em condições normais isso daria erro.

Se não convertesse era uma linguagem estúpida que permitia erros de lógica grosseiros pois era uma variável que nunca poderia ser utilizada, como converte, já é "CAOS! Imprevisível, incompreensível, inexplicável" :002:

Fica bem..
 
_freelancer_,

Apesar do ponto servir para concatenar strings em php, as próprias strings podem ter pontos finais, certo? Já viste um texto, numa string, com pontos finais? Tiveste problemas? Comigo nunca tinha dado e ando há uns anos nisto.

Neste caso, a variável é o $_POST. Que é um array. As chaves do array são strings ou integers, sendo neste caso strings. Portanto não vejo porque deveria esperar algum tipo de problema em usar o ponto na chave do array, sendo essa chave uma simples string.

Aliás, se fizer:

PHP:
<?

$a=array("a.000"=>1,"b"=>2);

var_dump($a);

?>

... o resultado é:

array(2) { ["a.000"]=> int(1) ["b"]=> int(2) }

Não houve aqui nenhuma passagem de ponto para sublinhado. De modo que continuo sem entender o que se passa. E contínuo com a impressão de que há uma certa imprevisibilidade nisto tudo. Se alguém souber explicar, com conhecimento, agradeço.
 
D X, os caracteres como o ponto, bem como outros caracteres ou sequências de caracteres, são, normalmente, alterados ou retirados nas "round-trips" (cliente-servidor-cliente), geralmente por motivos de segurança.
 
Back
Topo