%20n%C3%A3o%20funcionam.png)
No meu arquivo PHP eu tenho este código (não o código real, apenas para fins de demonstração):
ob_start();
var_export(headers_sent());
var_export(ob_get_status());
header('Content-Type: text/html');
header('Content-Type: application/json');
Mas os cabeçalhos de resposta acabam sendo text/html
em vez de application/json
. Pelo que entendi, a última chamada header()
deve ser o que é usado - espacialmente, pois headers_sent()
retorna falso e ob_get_status()
também confirmará que o buffer de saída está ativado.
EmDocumentação PHPpois header()
diz esta declaração no changelog da versão 5.1.2:
Esta função agora evita que mais de um cabeçalho seja enviado ao mesmo tempo como proteção contra ataques de injeção de cabeçalho.
Não tenho certeza do que isso significa - porque isso certamente não tem sido um problema desde o PHP 5.1.2.
E até mesmoWordPressdepende de ligar header()
várias vezes, por exemplo. em wp-admin/admin-ajax.php
onde ele chama no início do arquivo @header( 'Content-Type: text/html; charset=' . get_option( 'blog_charset' ) );
e, mais tarde, quando determina que a ação precisa retornar dados JSON, ele chama @header( 'Content-Type: application/json; charset=' . get_option( 'blog_charset' ) );
em .wp_send_json()
wp-includes/functions.php
Existe alguma mudança que eu possa fazer no servidor para fazer o PHP usar o último tipo de conteúdo fornecido? Obviamente não posso alterar os arquivos principais do Wordpress.
Eu uso Debian 9.3, PHP 7.1.3, Apache 2.4.25.
Nota do site: O efeito desse problema é que a Biblioteca de Mídia não carrega nenhuma imagem no modo de grade e o indicador de atividade continua girando.
!! ATUALIZAR !!
Agora descobri que isso acontece porque tenho o seguinte em meu .htaccess
arquivo:
php_value output_handler mb_output_handler
Esqueci por que tenho isso aí, então não tenho certeza se ouso removê-lo... Mas por que isso tem esse efeito?