Suporte » Outros assuntos » Problemas com PHP

  • Resolvido rodrigoteixeiraprado

    (@rodrigoteixeiraprado)


    Boa tarde a todos.

    Estou desenvolvendo um site de um cliente que estava fora do ar há 3 anos. Fiz a atualização do WordPress 5.2.2, mas estou com alguns erros. Ao tentar criar uma simples página, surgem duas mensagens:

    Warning: strrev() has been disable for security reasons in /home/astro/public_html/wp-admin/includes/post.php on line 1356.

    Warning: cannot modify header information – headers already sent by (output started at /home/astro/public_html/wp-admin/includes/post.php:1356) in /home/astro/public_html/wp-includes/option.php on line 947 and online 948.

    Desabilitei todos os plugins instalados, instalei o plugin Health Check & Troubleshooting que detectou um ou mais módulos recomendados em falta. O serviço de hospedagem se isenta de responsabilidade e disse que os erros são de programação PHP dentro do próprio WordPress. Será que alguém poderia dar alguma dica sobre o que fazer? Estou quase sugerindo ao cliente que mude o domínio para outra hospedagem, com WordPress instalado do zero. Devo fazer isso?

    Obrigado a todos

    A página que eu preciso de ajuda: [fazer login para ver o link]

Visualizando 9 respostas - 1 até 9 (de um total de 9)
  • Moderador Felipe Santos

    (@foosantos)

    Olá, tudo bem?

    Vi que mudou o tema também, isso também não resolveu o seu problema?

    Uma dica é nunca atualizar um site que ficou tanto tempo sem atualização. A recomendação, neste caso, é fazer tudo do zero, migrar o conteúdo e depois migrar o site.

    Você também pode instalar o WordPress manualmente, basta fazer o download e substituir todos os arquivos com exceção do diretório /wp-content/ e do arquivo wp-config.php.

    Criador do tópico rodrigoteixeiraprado

    (@rodrigoteixeiraprado)

    Olá Felipe, tudo bem? Obrigado pela mensagem. Mudei o tema e continuo com esse erro. Na realidade eu não sabia dessa dica sobre não atualizar o site depois de tanto tempo fora do ar.

    Você sugere então que eu desinstale o WordPress e faça uma instalação manual? Eu vou ver como faz pq sempre faço pelo Softaculous. Eu não sou programador, não tenho noção, apenas desenvolvo pelo WordPress + Elementor. Teria algum tutorial sobre como substituir todos os arquivos?

    Moderador Felipe Elia

    (@felipeelia)

    Olá!

    O problema no seu caso não está relacionado com a versão do WordPress. Na verdade o PHP do seu serviço de hospedagem está se recusando a executar uma função nativa do PHP: a strrev. Esta função faz parte do WordPress e é necessária para que o sistema funcione.

    Você tem acesso ao arquivo php.ini da hospedagem? Se tiver, procure por uma linha contendo disable_functions= e apague o que vier depois do sinal de igual. Se não existir essa linha, basta inclui-la exatamente dessa forma.

    Se você não tiver acesso a este arquivo provavelmente será necessário entrar em contato com a hospedagem para que eles façam a alteração. Se eles se recusarem, infelizmente será preciso procurar outro serviço.

    Criador do tópico rodrigoteixeiraprado

    (@rodrigoteixeiraprado)

    Olá Felipe, bom dia. Fiz a instalação manual do WordPress, criei até um novo banco de dados, mas infelizmente seguem os erros:

    Warning: strrev() has been disable for security reasons in /home/astro/public_html/wp-admin/includes/post.php on line 1356.

    Warning: cannot modify header information – headers already sent by (output started at /home/astro/public_html/wp-admin/includes/post.php:1356) in /home/astro/public_html/wp-includes/option.php on line 947

    Warning: cannot modify header information – headers already sent by (output started at /home/astro/public_html/wp-admin/includes/post.php:1356) in /home/astro/public_html/wp-includes/option.php on line 948.

    Isso me impede de criar uma página do zero. O pior é que o serviço de hospedagem diz que isso não é com eles.

    Alguma sugestão?

    Criador do tópico rodrigoteixeiraprado

    (@rodrigoteixeiraprado)

    Obrigado Felipe Elia. Vou tentar agora mesmo sua sugestão.

    Criador do tópico rodrigoteixeiraprado

    (@rodrigoteixeiraprado)

    Acabei de falar com o serviço de hospedagem e eles disseram que só podem liberar o acesso à função strrev caso eu “me comprometa a realizar a implementação de medidas de segurança avançadas no WordPress, pois com essa liberação serão abertas algumas brechas de segurança na sua conta de hospedagem, e como o WordPress é amplamente conhecido, é muito vulnerável à tais brechas.”

    De qualquer maneira me disseram que esse acesso não solucionará o problema:

    Warning: cannot modify header information – headers already sent by (output started at /home/astro/public_html/wp-admin/includes/post.php:1356) in /home/astro/public_html/wp-includes/option.php on line 947 and online 948.

    Disseram que esse erro não está relacionado à strrev e sim à modificação de headers, em algum conflito da programação.

    Realmente não sei o que fazer com este serviço de hospedagem.

    Olá @rodrigoteixeiraprado,

    Eu não teria problema nenhum em seguir o conselho da hospedagem em adotar “medidas de segurança avançadas no WordPress”. Isso não me parece ser um capricho da hospedagem, mas uma recomendação importante para qualquer site, especialmente num ambiente compartilhado.

    Pelo contrário, entendo a princípio que o zelo da hospedagem em exigir medidas de segurança é benéfico, pois outros sites no mesmo servidor do seu também terão de ter uma maior proteção, sem a qual podem ser derrubados e derrubar o seu por tabela.

    Eu uso e recomendo o Ninja Firewall (WP Edition) em seu modo “Full WAF”, que filtra as solicitações HTTP antes mesmo do WordPress ser invocado. (Tb já usei o Wordfence, que tem uma funcionalidade semelhante, só desisti dele devido a problemas com SEO). Só de instalar um firewall desses vc já deve convencer a hospedagem a liberar a função strrev, pois acho difícil que ambos não barrem malware a partir dela, já que a malandragem já foi exposta há algum tempo. (O Sucuri tem um post sobre isso de 2017).

    Quanto ao outro erro, é bem comum e nenhuma hospedagem vai livrar vc dele. Vc vai precisar identificar o que está causando e modificar o código ou substituir o arquivo do core que possa estar corrompido (às vezes acontece de um FTP adicionar um mero espaço ou linha em branco a mais, e já aparece erro desse tipo).

    Moderador Felipe Elia

    (@felipeelia)

    Desculpem, mas a função strrev só reverte uma string. Para explorar a brecha de segurança mencionada pela Sucuri é preciso estar com a função eval habilitada e esta sim é MUITO problemática.

    De qualquer forma, concordo com o cbrandt sobre a indicação dos plugins de segurança. Para mais informações sobre o assunto, esta checklist pode ajudar.

    Sobre o erro Warning: cannot modify header information – headers already sent by ele acontece quando algo é enviado para o navegador do visitante antes da hora. O que está sendo enviado neste caso é exatamente o erro relacionado à strrev, portanto há uma grande chance de, ao liberar a função, resolver esse outro problema também.

    Criador do tópico rodrigoteixeiraprado

    (@rodrigoteixeiraprado)

    Muito obrigado @felipeelia e @cbrandt. O serviço de hospedagem habilitou a função strrev e indicou normas de seguranças que irei cumprir. Testarei o Ninja Firewall e verei a checklist. Por enquanto, após a liberação da função, o problema não retornou.

    Um abraço para todos.

Visualizando 9 respostas - 1 até 9 (de um total de 9)
  • O tópico ‘Problemas com PHP’ está fechado para novas respostas.