⊗ppPmRdIns 405 of 447 menu

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 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 if ($_GET['test']) { header('Location: test.php'); die(); } $query = "UPDATE users SET changed=1 WHERE id=1"; mysqli_query($link, $query); ?>

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

Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar