ID: 15994
Updated by: [EMAIL PROTECTED]
Reported By: [EMAIL PROTECTED]
-Status: Bogus
+Status: Closed
Bug Type: HTTP related
PHP Version: 4.0.5
New Comment:
This was not bogus and has been fixed in 4.3.x. Thanks for your report.
Previous Comments:
------------------------------------------------------------------------
[2002-03-11 08:11:00] [EMAIL PROTECTED]
You can do header("HTTP/1.1 404"); and PHP will create a nice header
for it.
------------------------------------------------------------------------
[2002-03-11 07:24:22] [EMAIL PROTECTED]
Apache returns HTTP-status code according to Status:-header line
returned by a cgi-script. PHP should do that too because it's a good
feature to support that behavior to allow script-writers return custom
status-codes.
Status is not a real HTTP header but a HTTP-server could return e.g.
"HTTP/1.0 404" from a cgi-script. But it doesn't work that way for PHP
when running as a module inside Apache. It could.
e.g.
<?php
if (file_exists($file))
echo mtime($file);
else
header("Status: 404 Not Found");
?>
In Apache it's done this way
But this doesn't get done for PHP when running as a module.
(Apache 1.3.9 util-script.c
ap_scan_script_header_err_core(...)
{
...
/*
* If the script returned a specific status, that's what
* we'll use - otherwise we assume 200 OK.
*/
else if (!strcasecmp(w, "Status")) {
r->status = cgi_status = atoi(l);
r->status_line = ap_pstrdup(r->pool, l);
}
...
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=15994&edit=1