I don't know if this is related but header() must be called before any
actual output is sent.

One way to resolve this is to use the ob_start() tag at the start of the
code, this turns output buffering on.

Mind you I am no expert and stand ready to be corected and berated.

Peter


I wanted to hide the existance of my include files by making them
'invisible': give a 404 error when requested. This worked, but the files
that were including were obviously 404ing too. So I decided to use
$PHP_SELF and check whether the script's PHP_SELF was it's filename,
which would mean that it was being accessed directly, as opposed to
being included. I tried this code:



(include.php)
<?
$string = "include";
$container = "$PHP_SELF";
if(strstr($container,$string)) {
header("HTTP/1.0 404 not found");
exit;
}
?>


at the top of the include files, but it wasn't working. Change the
header() to an echo and test it. It echoed. So it's a problem with the
header(). I tried this:


<?
header("HTTP/1.0 404 Not Found");
?>


and it worked perfectly. Can header() not be in an if loop or something
like that?



-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED] To
contact the list administrators, e-mail: [EMAIL PROTECTED]


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to