#35933 [Bgs]: URL rewriting fails on ob_get_contents()
| From: | ernest at vogelsinger dot at | Date: | Sun, 08 Jan 2006 17:42:45 +0000 |
| Subject: | #35933 [Bgs]: URL rewriting fails on ob_get_contents() | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-91663@lists.php.net to get a copy of this message | ||
ID: 35933
User updated by: ernest at vogelsinger dot at
Reported By: ernest at vogelsinger dot at
Status: Bogus
Bug Type: Output Control
Operating System: any
PHP Version: 5.1.1
New Comment:
Thanks for your omments that this is not a bug - IMHO it is actually a
bug, not a feature.
URL rewriting should happen at the final stage, when the output is
actually flushed back to the client, not at any other obscure location
within the PHP output buffers.
---
I'll post a comment on the respective manual page (which I have read
and fully understood ;->)
Previous Comments:
------------------------------------------------------------------------
[2006-01-08 17:51:49] sniper@php.net
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to
report
a bug at http://bugs.php.net/how-to-report.php
------------------------------------------------------------------------
[2006-01-08 17:46:13] ernest at vogelsinger dot at
Description:
------------
URL Rewriting fails on ob_get_contents().
Note: the workaround is to have second buffering envelope which gets
flushed into the first, thus triggering the URL rewrite. The two lines
necessary for the workaround are commented out in the code example.
Reproduce code:
---------------
<?php
$output = <<<EOF
<html><body>
<a href=".">self link</a>
</body></html>
EOF;
ob_start();
// *** ob_start();
session_start();
echo $output;
// *** ob_end_flush();
$data = ob_get_contents();
ob_end_clean();
echo '<xmp>';
if (defined('SID'))
echo 'URL should be rewritten having: ', SID, "\n";
else
echo "No SID, no rewritten URL\n";
echo "<xmp>$data</xmp>";
?>
Expected result:
----------------
URL should be rewritten having:
PHPSESSID=667e6b2bde474a2820c8e0f8dc41200f
<html><body>
<a href=".?PHPSESSID=667e6b2bde474a2820c8e0f8dc41200f">self link</a>
</body></html>
Actual result:
--------------
URL should be rewritten having:
PHPSESSID=667e6b2bde474a2820c8e0f8dc41200f
<html><body>
<a href=".">self link</a> </body></html>
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=35933&edit=1