|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2002-06-28 01:30 UTC] warwick at imvs dot sa dot gov dot au
This problem occurs with PHP 4.2.0 and PHP 4.2.1 but is fine using PHP 4.1.1 and older versions.
When calling a session_destroy() on a newly created session, it will clear buffered output when greater than 4k without sending it to the client.
The following sample script should demonstrate this. When $repeatCount is 4096 or greater, only the word END will be output, without the 4096 X's preceeding it. When repeatCount is 4095 the X's and the word END are sent.
By removing the session_destroy() call following the str_repeat echo the X's will be output regardless of the $repeatCount setting.
<?php
## Sample script
##
## Relevant (?) php.ini settings I have:
## output_buffering = Off (have tried 8192 - no effect)
## output_handler =
## zlib.output_compression = Off
## implicit_flush = Off
## $repeatCount = 4095; ## Works fine
$repeatCount = 4096; ## Fails
session_start();
echo str_repeat('X', $repeatCount);
session_destroy();
echo "END";
?>
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2026 The PHP GroupAll rights reserved. |
Last updated: Tue Oct 06 23:00:02 2026 UTC |
I can reproduce with this. Thats works only the firstime when session is not already a cookie. note that 012345678910 is break ---------------- <?php session_start(); ?> <html> <body> <HR /> begin source <HR /> <?php highlight_file("./".$PHP_SELF); ?> <HR /> End source <HR /> <A href="blabla.php">blabla</A> 0 1 2 3 4 5 <?php session_destroy(); ?> 6 7 8 9 10 </body> </html>