Pergunta

Meu porcaria host fez alguns melhoramentos no outro dia e algumas configurações têm errado se foi, porque olhando para wiki da nossa empresa (MediaWiki), cada citação está sendo escapou com barras invertidas. Não é mesmo apenas de dados que está sendo publicado (ie: os artigos) que são afetados, mas também o texto MediaWiki padrão. por exemplo:

Você \ 've seguiu um link para uma página que doesn \' t existe. Para criar a página, começe escrevendo na caixa abaixo (veja a página de ajuda para mais informações). Se você chegou aqui por engano, clique no seu browser \ 's \' \ '\' \' botão \ '\' de volta.

A primeira coisa que fiz foi desativar magic_quotes_gpc E magic_quotes_runtime usando um arquivo .htaccess, mas isso ainda está ocorrendo. Meu php_info() relata o seguinte:

Setting             Local Value   Master Value  
magic_quotes_gpc        Off            On  
magic_quotes_runtime    Off            On  
magic_quotes_sybase     Off            Off  

Todas as idéias?

Foi útil?

Solução

Se bandeiras PHP são definidos com php_admin_flag / php_admin_value, você não pode mudá-lo a partir de um arquivo de .htaccess. Isso tem me causado alguma dor de cabeça antes. Ou desativá-lo em php.ini ou magic quotes desfazer em tempo de execução: http://talks.php.net/show/php-best-practices/ 26

Outras dicas

Você pode querer confirmar que os dados em seu banco de dados não foi corrompido. Se você fosse addslash () ing seus dados quando, sem o seu conhecimento, magic_quotes tinha sido ligado, então você seria double-slashifying dados entrando em seu DB.

Você precisa levá-los a alterar o valor mestre, ou lidar com isso sozinho. Eu não acredito que você pode definir magic_quotes_gpc() em tempo de execução para super globals. (Fixando-a em tempo de execução irá retirar coisas como banco de dados / arquivos, mas não os globals)

if (ini_get('magic_quotes_gpc') ) {
  foreach($_GET as $key=>$value) {
    $_GET[$key] = stripslashes($value);
  } 
} // etc...

Talvez algo mais está chamando set_magic_quotes_runtime ().

Eu uso stripslases () para remover barras ao exibir.

http://www.php.net/manual/en/function .stripslashes.php

Você tentou entrar em contato com o seu porcaria host e registrando uma falha? Você provavelmente não o único afetado se você estiver em hospedagem compartilhada.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top