Ir para conteúdo
Fórum Script Brasil
  • 0

Cannot modify header information


Frank K Hosaka

Pergunta

A primeira vez que eu vi essa mensagem foi em 2020, quando comecei a estudar o PHP.

A orientação que eu recebi é de procurar um espaço mal digitado no código. Eu não achei. Para a minha sorte eu encontrei um código JScript que me ajudou a contornar o problema:

<?php
// ...
echo "<script>location.replace('diario.php')</script>";

Finalmente, cheguei em 2024, e comecei a estudar o MVC, é uma gramática que trabalha com pastas, classes, métodos e propriedades, mais conhecido como objetos.

O problema é encontrar tutorial fácil de compreender, e isso é bem difícil. Assim, tomei a iniciativa de tentar por conta própria. É claro que eu não consegui. Tanto é que eu precisei usar novamente o comando do PHP header, e novamente surgiu a velha mensagem de erro. Dessa vez, eu não queria usar o JScript. O erro aconteceu nesse código:

<?php
// ...

  public function lcto(){
    if(isset($_GET['lcto'])){
      $_SESSION['lcto']=$_GET['lcto'];
      $this->entraProduto();}
    $_SESSION['endereco']="entraProduto";
    header("location:?ControleDiario.inicio");exit;}

O erro é muito sutil, difícil de enxergar.

O trabalho da função lcto é mudar a rota do serviço, ele precisa espionar o ControleDiário para procurar o número do lançamento contábil.

No ControleDiário eu pedi para ele devolver o comando para o ControleEstoque se encontrar a variável $_SESSION['endereço'] ativada, usando o mesmo recurso do header.

O problema da função lcto é que ele está mal escrito, ele deveria espionar o ControleDiario ou receber a informação dele, mas não os dois ao mesmo tempo. Foi isso que aconteceu, o certo é escrever assim if(condição){faça isso, e mais nada}, ou:
 

<?php
// ...
  public function lcto(){
    if(isset($_GET['lcto'])){
      $_SESSION['lcto']=$_GET['lcto'];
      $this->entraProduto();       exit;       }
    $_SESSION['endereco']="entraProduto";
    header("location:?ControleDiario.inicio");exit;}

 

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652,1k
×
×
  • Criar Novo...