1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

PHP e Special Chars

Discussão em 'Programação' iniciada por eXcept, 14 de Março de 2006. (Respostas: 8; Visualizações: 784)

  1. eXcept

    eXcept Power Member

    Viva.

    tenho um script em PHP que faz o get de uma form - textbox para uma variável, e depois vai guardar essa variável dentro de um ficheiro.

    O problema é que se nessa text box eu coloco um texto com aspas "", ele vai-me guardar no ficheiro com \", ou seja:

    se eu coloco o texto : isto é "um texto com aspas"

    ele guarda-me no ficheiro com: isto é \"um texto com aspas\"

    Eu compreendo o uso das escape slashes para as aspas, mas eu preciso mesmo que o texto seja guardado sem as slashes.

    Alguem sabe como evitar esse uso?
     
  2. Marsupillami

    Marsupillami Power Member

    Possivelmente o servidor que usas tem o magic_quotes activado. Poderás desactivá-lo pelo .htaccess se n me engano, ou então simplesmente fazer um stripslashes(variavel_com_o_texto);
     
  3. eXcept

    eXcept Power Member

    tendo em conta que sou o administrador do servidor, quais as vantagens e desvantagens de desactivar mesmo o magic_quotes mesmo no php.ini!?
     
  4. Marsupillami

    Marsupillami Power Member

    O magic_quotes só te faz uma coisa: Acrescenta as slashes quando encontra um " em dados enviados pelo $_POST, para desta forma impedir a injecção de código MySQL. Assim sendo, se o servidor for público, convem teres o magic_quotes activado. Se for só teu (para uso de sites feitos por ti), e usares convenientemente o addslashes, então podes desactivar (nestes casos o magic_quotes em on até atrapalaha um pouco).
     
  5. eXcept

    eXcept Power Member

    Suponho que sejam essas magic_quotes_gpc = On, correcto?
     
  6. Marsupillami

    Marsupillami Power Member

    Exacto. GPC -> GET, POST, COOKIE.
     
  7. eXcept

    eXcept Power Member

  8. mcog_blaster

    mcog_blaster Power Member

    if (get_magic_quotes_gpc()) {
    $var = stripslashes($_POST['var']);
    } else {
    $var = $_POST['var'];
    }

    assim nao precisas de mexer no ficheiro de configuraçao.

    O ideal seria nunca usar stripslashes, mas ja vais guardas num ficheiro, entao tens mesmo de usar esta funçao.
     
  9. eXcept

    eXcept Power Member

    tendo em conta que o servidor é interno, apenas serve a Intranet, retirei as magic_quotes.
     

Partilhar esta Página