ID: 14529 User updated by: [EMAIL PROTECTED] Old Summary: script doesn't always finish output Reported By: [EMAIL PROTECTED] Status: Open Bug Type: Output Control Operating System: Linux RH 7.2 Old PHP Version: 4.1.0 PHP Version: 4.1.1 New Comment:
Have tried using PHP 4.1.1 now and output is still being cut off. It seems to do this when there is a very long string in a variable. For example I have my one program create all the body of an HTML file into one variable such as $body. Other variables handle other sections of the HTML code such as $header, $body_tag, etc. This way many different modules can all have control over the page output regardless of when they are called. But if the output gets fairly large in one variable, then the script seems to stop output (NOT NECESSARILY while outputing that variable but could be in the middle of an echo statement further down. It's as if it can only handle echoing a limited amount HTML. I'm not talking about the variable being huge either, just a couple of pages worth of text. I tried changing the default 8MB of memory a script can use up to 20MB. Currently I have output buffering turned to Off. If I turn it on it seems to handle it better but still have problems. Previous Comments: ------------------------------------------------------------------------ [2001-12-19 18:32:00] [EMAIL PROTECTED] Sorry, What I first thought to be consistant is proving me wrong. The end bracket is now making no difference whether the page loads completely or not. It seemed to at first but now there is no difference. A new discovery is that on some pages even with Output_buffering set to On, it is also halting output to HTML code. It is also crashing many times whereas a request to a page (or simple refresh) is sometimes just hanging or returning very quickly that the page is not available (and upon a refresh it loads again). 4.1.0 had some wise moves made with the session handling so globals can be turned off. I've been waiting for this improvement for sometime, but 4.1.0 is simply too buggy and unstable. I've tried a couple of the new developments but am finding other problems with them the strongest being my code to connect to my MySQL database no longer works in the newer versions (4.2.0-dev). I am giving up and going back to 4.0.6 Until the serious bugs are removed from a version with the better session handling. If you need me to test other things I'd be happy to, just let me know. ------------------------------------------------------------------------ [2001-12-17 17:58:58] [EMAIL PROTECTED] Went back to PHP 4.1.0 and have tried numerous things and found a consistency causing the problem (don't understand why though). If the URL is something such as: http://www.domain.com/test/control_panel scripting stops part ways through unless I have output_buffering On if the URL is: http://www.domain.com/test/control_panel/ (notice the end /) it works just fine with output_buffering on OR off When I drop back to PHP4.0.6 it doesn't matter if the end '/' is there or not. I must point out that this script forces a virtual URL in that it actually is running a PHP script called test and everything else on the URL is simply virtual pages telling the test script what it is to be doing. On static pages I have not tested this to see if the '/' is missing that there is a problem. Perhaps apache needs different configuration when using PHP4.1.0 over PHP4.0.6 to overcome the end '/' tag. Now that I know this bug, I can easily overcome it in my code (all links already do this but for test pages I just manually type it in and have always left the end '/' off as it worked in previous versions of PHP). Just in case I tested it with both magic_quotes on and off in both 4.0.6 and 4.1.0 and it still works in 4.0.6 and not in 4.1.0 Either way this problem is not as serious anymore as this slight fix (in knowing the '/' is needed) means I'm no longer having half pages displayed. ------------------------------------------------------------------------ [2001-12-15 15:33:50] [EMAIL PROTECTED] Tried using the snap shot and it will no longer let me connect to my MySQL database so I couldn't run the page I've been doing the testing on. Did the format for mysql_connect change in this version? I can still connect to it from the Linux prompt itself so it's still running. In phpinfo() the section on mysql looks exactly the same except MYSQL_MODULE_TYPE (4.1.0 reports 'none' the 4.2.0-dev reports 'builtin') yet I used the same configure line (both used built in - I've never figured out how to get it to use the installed MySQL perhaps because it's installed from rpm files and library file just don't exist - but not too sure what I am supposed to be looking for there). ------------------------------------------------------------------------ [2001-12-15 06:35:00] [EMAIL PROTECTED] Can you please try a snapshot from snaps.php.net, and see if it's fixed in the 4.2.0dev version? Thanx, Derick ------------------------------------------------------------------------ [2001-12-14 20:16:49] [EMAIL PROTECTED] Having a problem like in bug ID# 9836 but was unable to submit comments to that thread. scripts sometimes stops outputing part ways through. (No errors just an uncompleted page displayed). Regardless of how many refreshes it stops at exact same place. Some pages have very little code others have a lot so length doesn't seem to be the issue. I tried setting a session variable after an echo statement that did not fully display and on a reload it had taken the new value. This would suggest the script doesn't really stop, just the output of HTML being returned stops. As a side note the time the setting of a session variable was added below the lines not displaying, upon a refresh it not only showed me the variable was set but it displayed the whole page. Sure enough if I pulled the session variable out (nothing relative to the page at all), restart the session it's back to stopping at the exact same spot before - right in the middle of an echo statement such as: echo "This is a sample"; would only output: Thi (and that would be the last of the page) It is not timing out (runs in less than a second). But I have discovered if I set the following in php.ini it works perfectly: output_buffering = On (formally set to 'Off') You would think that with it set to On you'd have more chances of a cut off than with it Off Here is my config line (same as when I run PHP4.0.6 which doesn't repeat this problem). ./configure --with-apxs --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/usr/com --mandir=/usr/share/man --infodir=/usr/share/info --prefix=/u sr --with-config-file-path=/etc --disable-debug --enable-pic --disable-rpath --enable-inline-optimization --with-bz2 --with-curf --with-db3 --with-exec-dir=/usr/bin --with-gd --with-gdbm --with-gettext -with-jpeg-dir=/usr --enable-trans-sid --with-openssl --with-png --with-regex=system --with-ttl --with-zlib --with-layout=GNU --enable-debugger --enable-ftp --enable-magic-quotes --enable-safe-mode --enable-sockets --enable-sysvsem --enable-sysvshm --enable-track-vars --enable-yp --enable-wddx --with-mysql --with-pgsql --without-unixODBC --without-oracle --without-oci8 --with-pspell --with-xml --with-pdf --with-cybercash I also am using Zend Optimizer (for 4.1.0) I should also point out that with PHP4.1.0 I can not use 'user' session handling (used MySQL to handle sessions in PHP4.0.6), now unless I turn it back to default 'files' it will not let me use old (session_register) or the new ($_SESSION['name']=)...though no errors occur the session just doesn't retrieve or store data anymore. I don't know if these two would be linked but I thought I'd bring it up ------------------------------------------------------------------------ Edit this bug report at http://bugs.php.net/?id=14529&edit=1 -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]