Redirecionamento instantâneo em PHP

Um redirecionamento realizado usando a função header não ocorre no momento em que essa função é chamada. Isso porque o PHP não executa o redirecionamento por si só, ele apenas envia o cabeçalho HTTP correspondente para o navegador.

Isso significa que o redirecionamento só ocorrerá quando o PHP executar todo o script até o final. Por causa disso, vários efeitos indesejados podem acontecer.

Por exemplo, no código a seguir, queremos executar um redirecionamento ou uma consulta ao banco de dados. Mas a consulta ao banco de dados será executada mesmo que tenha sido dado o comando para redirecionar:

php<?php
  if ($_GET['test']) {
    header('Location: test.php');
  }
  
  $query = "UPDATE users SET changed=1 WHERE id=1";
  mysqli_query($link, $query); // será executada mesmo com o redirecionamento!
?>

Para evitar tais problemas, é necessário chamar a função die imediatamente após o redirecionamento. Ela terminará instantaneamente a execução do script e o redirecionamento ocorrerá imediatamente:

php<?php
  if ($_GET['test']) {
    header('Location: test.php');
    die();
  }
  
  $query = "UPDATE users SET changed=1 WHERE id=1";
  mysqli_query($link, $query);
?>
Задание 1

Reproduza algum efeito indesejado em seu código. Em seguida, corrija-o usando a função die.