ID:          15994
 Updated by:  [EMAIL PROTECTED]
 Reported By: [EMAIL PROTECTED]
-Status:      Open
+Status:      Bogus
 Bug Type:    HTTP related
 PHP Version: 4.0.5
 New Comment:

You can do header("HTTP/1.1 404"); and PHP will create a nice header
for it.


Previous Comments:
------------------------------------------------------------------------

[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

Reply via email to