header()
in normal usage ,must be called before any actual output is sent,
and you already send data before using it .
☼►Solution : to manipulate that and have the ability to use header() wherever you want ..
then PHP has Output control functions which allow you to control when the output (such as HTML code) is being buffered in the server until you send it . so follow the Instructions down below :
by using ob_start
in the beginning and ob_end
in the end
✔ replace your code with this :
<?php
ob_start( );
?>
<!DOCTYPE HTML>
<HEAD>
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
</HEAD>
<BODY>
<?php
$referer = filter_input(INPUT_SERVER, 'HTTP_REFERER'); // real referrer detected
// do something or nothing
header("Location: $referer");
?>
</BODY>
<?php
ob_end_flush( );
?>
☢ Warning : make sure there is no Whitespace before <?php ob_start( );
or it will throw the same error .
.........................................
✘ - the wrong way :
<?php
ob_start( ); ?>
✔ - the Right way :
<?php
ob_start( ); ?>