1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.
  2. Informação: Pela 0:30 desta Sexta-feira (9 de Dezembro, 23:30 de Quinta-feira nos Açores) o Fórum e restantes sites da ZWAME vão estar offline para manutenção durante cerca de 1h30.
    Se necessário faremos actualizações via Twitter e Facebook.
    Remover anúncio

Preplexidade HTML

Discussão em 'Programação' iniciada por D X, 27 de Julho de 2005. (Respostas: 7; Visualizações: 918)

  1. D X

    D X

    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: 28 de Julho de 2005
  2. NoMercy

    NoMercy Power Member

    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.
     
  3. D X

    D X

    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...
     
  4. NoMercy

    NoMercy Power Member

    sim, acho que era isso. O problema deve ser identico.
     
  5. _freelancer_

    _freelancer_ Power Member

    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..
     
  6. NoMercy

    NoMercy Power Member

    Modera lá ai o tom sff.
     
  7. D X

    D X

    _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.
     
  8. NoMercy

    NoMercy Power Member

    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.
     

Partilhar esta Página