ID:               29162
 Updated by:       [EMAIL PROTECTED]
 Reported By:      php-bugs at carldunham dot com
-Status:           Open
+Status:           Closed
 Bug Type:         Documentation problem
 Operating System: Linux (Gentoo 1.4)
 PHP Version:      4.3.7
 New Comment:

This bug has been fixed in the documentation's XML sources. Since the
online and downloadable versions of the documentation need some time
to get updated, we would like to ask you to be a bit patient.

Thank you for the report, and for helping us make our documentation
better.

Documented by REQUEST_METHOD in reserved.variables.server: (didn't find
better place for it)
"PHP script is terminated after sending headers (it means after
producing any output without output buffering) if request method was
HEAD."


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

[2004-07-15 02:42:15] [EMAIL PROTECTED]

This is expected behavior, it should be documented. 

------------------------------------------------------------------------

[2004-07-14 22:00:29] php-bugs at carldunham dot com

Description:
------------
It seems that a script executing in response to a HEAD 
request will terminate when non-header output is 
generated. This can lead to different behavior in HEAD vs 
GET, which may not be desirable. Other bug reports 
(http://bugs.php.net/bug.php?id=15693) have indicated that 
the entire script executes, which does not seem to be the 
case. 
 
I was unable to find documentation of what is the intended 
behavior, although I would vote for having the script 
complete no matter the method, as working around cases 
where that is not desirable is easier: 
 
if ($_SERVER['REQUEST_METHOD'] == 'HEAD') exit(); 
 
at the top of a script, vs. 
 
if ($_SERVER['REQUEST_METHOD'] != 'HEAD') { 
   // do outputty things 
} 
// do non-outputty things 
 
sprinkled throughout the code. 

Reproduce code:
---------------
<?php

$fp = fopen('/tmp/test-head.out', 'a');

fwrite($fp, "Method = " . $_SERVER['REQUEST_METHOD'] . "\n");

echo "hello";

fwrite($fp, "POST: " . print_r($_POST, true) . "\n");
fwrite($fp, "GET: " . print_r($_GET, true) . "\n\n");

fclose($fp);


?>




------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=29162&edit=1

Reply via email to