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

 ID:                 54727
 Updated by:         fel...@php.net
 Reported by:        mats dot lindh at gmail dot com
 Summary:            ob_flush() before output_reset_rewrite_vars()
                     results in data loss
-Status:             Open
+Status:             Assigned
 Type:               Bug
 Package:            Output Control
 Operating System:   *
 PHP Version:        trunk-SVN-2011-05-13 (SVN)
-Assigned To:        
+Assigned To:        mike
 Block user comment: N
 Private report:     N



Previous Comments:
------------------------------------------------------------------------
[2011-05-13 14:00:06] mats dot lindh at gmail dot com

Description:
------------
The test for http://bugs.php.net/bug.php?id=26862 currently fails and
results in the last echo statement (everything after ob_flush() and
output_reset_rewrite_vars()) to get lost.



A variant of the issue was reintroduced after the output buffering
rewrite.



This seems to happen because the output is never handled if there is no
rewrite variables to process and there is no active buffer with
contents. The output chars still needs to returned as handled.



The patch also contains a small change in the test to better
differentiate the two echo statements.

Test script:
---------------
Based on: ext/session/tests/bug26862.phpt



<?php

session_start();

output_add_rewrite_var('var', 'value');



echo '<a href="file-first.php">link</a>';



ob_flush();



output_reset_rewrite_vars();

echo '<a href="file-second.php">link</a>';





Expected result:
----------------
<a href="file-first.php?var=value">link</a><a
href="file-second.php">link</a>

Actual result:
--------------
<a href="file-first.php?var=value">link</a>


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



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

Reply via email to