barras invertidas extras a ser adicionado no PHP
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?
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.
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.